Ändern Sie die Bilder auf Benutzerdefinierte Kontrollkästchen in WPF

Alle ich habe die folgende benutzerdefinierte CheckBox die Bilder verwendet statt einer CheckBox. Dies funktioniert gut, allerdings möchte ich in der Lage sein, ändern Sie die Bilder wie gewünscht. Idealerweise würde ich gerne verwenden Anwendung Ressourcen Properties.Resources.SomeImage16 (ein .png-Datei). XAML ist

<Style x:Key="styleCustomCheckBox" 
       TargetType="{x:Type CheckBox}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type CheckBox}">
                <StackPanel Orientation="Horizontal">
                    <Image x:Name="imageCheckBox" 
                           Width="16" 
                           Height="16" 
                           Source="F:\Camus\ResourceStudio\Graphics\Images\UnPinned16.png"/>
                    <ContentPresenter VerticalAlignment="Center"/>
                </StackPanel>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsChecked" Value="False">
                        <Setter TargetName="imageCheckBox" 
                                Property="Source" 
                                Value="F:\Camus\ResourceStudio\Graphics\Images\Pinned16.png"/>
                    </Trigger>
                    <Trigger Property="IsChecked" Value="True">
                        <Setter TargetName="imageCheckBox" 
                                Property="Source"
                                Value="F:\Camus\ResourceStudio\Graphics\Images\UnPinned16.png"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Umsetzung

<ListBox SelectionMode="Single" >
    <StackPanel Orientation="Horizontal">
        <CheckBox Style="{StaticResource styleCustomCheckBox}" 
                  HorizontalAlignment="Left" 
                  VerticalAlignment="Center"
                  Margin="4,0,4,0"/>
        <TextBlock VerticalAlignment="Top" 
                   Text="SomeRecentDocument.resx"/>
    </StackPanel>
</ListBox>

Wie kann ich die Bilder für die benutzerdefinierten CheckBox (d.h. die angepinnt/nicht angepinnt zu kreuzen/Kreuz etc.) ohne das erstellen einer neuen Formatvorlage/Vorlage?

Vielen Dank für Ihre Zeit.

  • 1 - verwenden Sie keine PNGs für alles. WPF ist nicht winforms. Verwenden Sie Vektorgrafiken, Wann immer möglich. 2 - möchten Sie vielleicht, um einige Attached Properties und binden, die in der ControlTemplate.
  • Wenn das erlaubt war, dann ein .NET-Anwendung hätte Zugriff auf ein beliebiges Laufwerk.
  • Es ist nicht klar, was Sie Fragen... ist es über das ändern der Bild basierend auf den Zustand einer checkbox? Wenn ja, mit Triggern arbeiten würde, aber Sie haben schon löst es... ist es, dass die Lösung, die Sie versucht, nicht funktioniert und Sie brauchen Hilfe, um es zu arbeiten?
  • Ich habe eine funktionierende benutzerdefinierte Kontrollkästchen-Steuerelement mit Bildern als angeheftete/ohne Führungsstift. Ich möchte wissen, wie/ob es möglich ist, ändern sich die Bilder für diese Staaten, wenn ich die Kontrolle...
  • wie kann ich eine Vektor-Bild von meiner Expression Design .design-Dateien? Ich kann exportieren, um XAML, aber die exportierten Ergebnisse für einige Bilder sind Komplex und aus vielen Schichten...
InformationsquelleAutor MoonKnight | 2013-08-30
Schreibe einen Kommentar