2016-04-05 11 views
1

Ich wurde gebeten, auf eine Schaltfläche, um eine Radio und CheckBox Variation war optisch ähnlich zu erstellen.User Control geerbt von Schaltfläche in WPF

Mit diesem Verhalten:
Wenn die Schaltfläche geklickt wird, ändern Sie ihn auf Zustand überprüft, wird der Hintergrund geändert, wenn darauf geklickt wird wieder der Zustand zu unkontrolliert und dem Hintergrund wiederum in die ursprüngliche Bürste verändert.

Zuerst war meine Strategie, eine Benutzerkontrolle zu erstellen. Aber da meine Kontrolle fast gleich einer Schaltfläche ist, sollte ich Vererbung sinnvoll einsetzen.

Also meine Frage ist
ist möglich, eine Benutzersteuerung, die von Taste erben zu schaffen? Wenn ja, ist das ein guter Ansatz? Wie kann ich es tun?

+1

[ 'ToggleButton'] (https://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.togglebutton (v = vs.110) ASPX-) mit 2-Vorlagen basierend auf' IsChecked'. Siehe z.B. [dies] (http://stackoverflow.com/a/15315930/1997232). – Sinatr

+0

@Sinatr kannst du das vielleicht in eine Antwort mit einem Code-Schnipsel schreiben? –

+0

'ToggleButton' passt wirklich für Ihre Anforderungen. Schreib einfach in dein XAML StepUp

Antwort

3

Ein möglicher Ansatz ist ToggleButton, zu verwenden, aber vollständig sein Aussehen zu ändern, wenn IsCheckedtrue werden:

<ToggleButton> 
    <ToggleButton.Style> 
     <Style TargetType="ToggleButton"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate> 

         <!-- IsChecked == false template --> 

        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
      <Style.Triggers> 
       <Trigger Property="IsChecked" Value="True"> 
        <Trigger.Setters> 
         <Setter Property="Template"> 
          <Setter.Value> 
           <ControlTemplate> 

            <!-- IsChecked == true template --> 

           </ControlTemplate> 
          </Setter.Value> 
         </Setter> 
        </Trigger.Setters> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </ToggleButton.Style> 
</ToggleButton> 

Verwendung 2 verschiedene Vorlagen (z <TextBlock Text="On" /> und <TextBlock Text="Off" />), um zu sehen, wie es funktioniert.

1

Sie können die Umschalttaste WPF verwenden.

+0

Wie so ?, schaue ich hier in "Toolbox/All WPF Controls" und finde diesen ToggleButton nicht. Ich verwende Visual Studio 2015 Community. Muss ich etwas tun, um diesen Gegenstand erscheinen zu lassen? –