Podswietlanie Buttona

0

Witam wszystkich.

Mam pytanie do osób bardziej ogarniętych w temacie.Od razu powiem, że używam WPF, chcę sobie stworzyć kilka rzeczy dynamicznie w trakcie działania programu a więc tworze sobie z poziomu kodu buttony które maja jakieś z góry narzucone właściwości np:

void CreateButton(string name)
{
Button button = new Button();

        Thickness marginesButton = button.Margin;
        button.Margin = new Thickness(5);
        button.Height = 75;
        button.Width = 75;
        button.Background = Brushes.CornflowerBlue;
        button.Content = name;
        button.Foreground = Brushes.CornflowerBlue; 
        button.FontSize = 32;
        button.FontWeight = FontWeights.UltraBlack;

}

Chce aby na starcie nie była widoczna zawartość klawisza (Content) tylko pojawiała sie dopiero po wciśnieciu wiec wymyśliłem sobie że ustawie takie samo tło oraz kolor czcionki. Tylko problem w tym że po odpaleniu i najechaniu na klawisz jest on podświetlany i Content staje się widoczny. I tu moje pytanie jak z POZIOMU KODU ustawić tą właściwość na nieaktywną?

0

A czemu nie zrobisz na początku Content="" i po wciśnięciu Content=name?

0

Akurat tak się złożyło, że nie mogę tego tak zrobić. Muszę to rozwiązać w taki sposób jak napisałem...

0

A czemu nie możesz tak tego zrobić?

0

Ponieważ chciałem spróbować napisać mini gierke typu "Memory" odkrywanie takich samych obrazków. Wymyśliłem to sobie w taki sposób, że moja plansza (4 x 4) będzie sie składała z 16 buttonów, i jako warunek (dla tych samych klocków) jest jego Content w moim przypadku liczba. Jeżeli content dwóch Buttonów się zgadza Button przechodzi na nieaktywny i dostajesz punkt. Nie wiedziałem jak to inaczej rozwiązać więc wymyśliłem taki sposób, aby nie było wiadomo jaka liczba kryje się w Buttonie na starcie ma taki sam kolor jak tło a po wciśnieciu sie pokazuje i sprawdza sie warunek. Wszystko śmiga, tylko po najechaniu widać zawartość (więc gra staje się bez sensu :D ) nie potrafię tego wyłączyć.. Może to prymitywny sposób na rozwiązanie tego ale chciałem spróbować to własnie tak zrobić

1
button.Tag = twojaLiczba;

Tu możesz przechować swoją liczbę

I po kliknięciu możesz ją ustawić jako content

void buttonClicked(object sender, EventArgs e)
{
     var btn = sender as Button;
     if(btn.Content == null)
         btn.Content = btn.Tag;
}
0

Jednak co dwie głowy to nie jedna, dzięki! Przyda się, użyje tego w programie :) Ale tak czy inaczej chciałbym wiedzieć jak rozwiązać problem z podświetlaniem, wiesz może jak to zaimplementować?

0

Pewnie trzeba by ustawić swój własny template, a zrobienie tego z code behind nie będzie łatwe.

0

Czytając inne wpisy na forach właśnie doszedłem do takiego wniosku ze troche z tym roboty jest ale myslałem ze może jest jakis magiczny sposób, dziwne ze nie ma prostszej drogi. Może nie bede na razie sie z tym męczył, dzięki wielkie za pomoc!

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.