2013-02-26 19 views
8

Jestem nowy w WPF i spróbuj (moim zdaniem) łatwe zadanie, ale nie dostałem go. Nawet Google mi nie pomoże, albo zadałem niewłaściwe pytanie.WPF kliknij pole wyboru zmiany etykiety isChecked Właściwość

Mam pole wyboru i etykietę; Chciałbym, aby kliknięcie etykiety zmieniło właściwość isChecked tego pola wyboru. Chcę to zrobić całkowicie w XAML bez kodu, ponieważ chcę zachować kod za czystym niepotrzebnym kodem. Proszę nie dyskutować o tym punkcie. Wiem, że to jedna linia kodu robiącego to w kodzie!

Praca z ustawiaczem zdarzeń na etykiecie nie rozwiązuje problemu, ponieważ można ustawić tylko program obsługi (który jest oczywiście w kodzie). Używanie scenorysu nie pomaga, ponieważ nie ma możliwości sprawdzenia rzeczywistej wartości nieruchomości.

Czy ktoś ma dobrą wskazówkę? Może coś przeoczyłem. Podaj fragment kodu rozwiązania.

+0

Możliwy duplikat [Zmień zachowanie etykiety, aby obsługiwał przełączanie przez kliknięcie w WPF] (http://stackoverflow.com/questions/6160566/change-a-labels-behavior-to-support-toggling-by-click- in-wpf) – MyDaftQuestions

Odpowiedz

8

wklej ten kod do kaxaml

Zobaczysz, że kliknięcie na etykiecie przełącza pole.

[Zobacz ten SO answer przez Kent]

<Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <StackPanel> 
    <CheckBox IsChecked="{Binding IsChecked, ElementName=checkbox}" Content="Hello"> 
     <CheckBox.Template> 
      <ControlTemplate TargetType="CheckBox"> 
       <ContentPresenter/> 
      </ControlTemplate> 
     </CheckBox.Template> 
    </CheckBox> 
    <CheckBox x:Name="checkbox" Content="A normal checkbox"/> 
</StackPanel> 
</Page> 
+0

Naprawdę przeoczyłem to ... dzięki! – sandkasten

+2

Znalazłem, że w aplikacji WinRT XAML na Windows Phone nie potrzebowałem używać szablonu - domyślny szablon działał poprawnie (kluczem była własność 'Content'). –

3

Można też to zrobić:

<CheckBox> 
    <Label Content="Your text here"/> 
</CheckBox> 

Jedynym ograniczeniem jest jednak, że tekst musi być po prawej stronie pola wyboru.

+0

Wow, dzięki, zawsze myślałem, że musi być prostsze rozwiązanie i oto jest! – SpeziFish

+0

Uwielbiam to. Jednak wyrównanie staje się nieznaczne między etykietą a polem wyboru. – user3382285

Powiązane problemy