none
WPF Style im XAML Code festlegen RRS feed

  • Frage

  • Ich habe mir einen Style zusammengebastelt. Diesen wollte ich nun über XAML "zuweisen".

    Style-DLL-ResourceDictionary :

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        
        <Style TargetType="Button" x:Key="PlusButtonBlue">
            <Setter Property="SnapsToDevicePixels"
              Value="true" />...

    App.xaml:

    <Application x:Class="Koopakiller.Test.App"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 StartupUri="MainWindow.xaml">
        <Application.Resources>
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary Source="pack://application:,,,/WPF.Styles;component/ButtonStyles.xaml"/>
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
        </Application.Resources>
    </Application>
    MainWindow.xaml:
    <Button Style="{StaticResource PlusButtonBlue}" Height="23" HorizontalAlignment="Left" Margin="41,63,0,0" Name="button2" VerticalAlignment="Top" Width="23" />

    Beim Debuggen stürtz mein Programm aber immer ab:

    Woran liegt das?

    Donnerstag, 5. April 2012 21:18

Antworten

Alle Antworten

  • Bei mir funktioniert Dein Code (ohne eigene Änderungen) fehlerfrei. Vermutlich ist in Deinem nicht gezeigtem Style noch etwas “versteckt”.
     
    --
    Viele Gruesse
    Peter
    Freitag, 6. April 2012 09:16
  • Hier mal die Komplette Style-Datei:

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        
        <Style TargetType="Button" x:Key="PlusButtonBlue">
            <Setter Property="SnapsToDevicePixels"
              Value="true" />
            <Setter Property="FocusVisualStyle"
              Value="false" />
            <Setter Property="MinHeight"
              Value="23" />
            <Setter Property="MinWidth"
              Value="23" />
            <Setter Property="MaxHeight"
              Value="256" />
            <Setter Property="MaxWidth"
              Value="256" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Button">
                        <Border  x:Name="Border"  
                                 CornerRadius="2" 
                                 BorderThickness="1">
                            <ContentPresenter Margin="2"
                                              HorizontalAlignment="Center"
                                              VerticalAlignment="Center"
                                              RecognizesAccessKey="True"/>
                            <Border.Background>
                                <ImageBrush ImageSource="/WPF.Styles;component/Button/Standart/Add/Standart.png" />
                            </Border.Background>
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsKeyboardFocused" Value="true">
                                <Setter TargetName="Border" Property="Background">
                                    <Setter.Value>
                                        <ImageBrush ImageSource="/WPF.Styles;component/Button/Blue/Add/Focused.png" />
                                    </Setter.Value>
                                </Setter>
                            </Trigger>
                            <Trigger Property="IsDefaulted" Value="true">
                                <Setter TargetName="Border" Property="Background" >
                                    <Setter.Value>
                                        <ImageBrush ImageSource="/WPF.Styles;component/Button/Blue/Add/Focused.png" />
                                    </Setter.Value>
                                </Setter>
                            </Trigger>
                            <Trigger Property="IsMouseOver" Value="true">
                                <Setter TargetName="Border" Property="Background" >
                                    <Setter.Value>
                                        <ImageBrush ImageSource="/WPF.Styles;component/Button/Blue/Add/Focused.png" />
                                    </Setter.Value>
                                </Setter>
                            </Trigger>
                            <Trigger Property="IsPressed" Value="true">
                                <Setter TargetName="Border" Property="Background" >
                                    <Setter.Value>
                                        <ImageBrush ImageSource="/WPF.Styles;component/Button/Blue/Add/Pressed.png" />
                                    </Setter.Value>
                                </Setter>
                            </Trigger>
                            <Trigger Property="IsEnabled" Value="false">
                                <Setter TargetName="Border" Property="Background" >
                                    <Setter.Value>
                                        <ImageBrush ImageSource="/WPF.Styles;component/Button/Standart/Add/Disabled.png" />
                                    </Setter.Value>
                                </Setter>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </ResourceDictionary>

    Freitag, 6. April 2012 10:19
  • Auf die Schnelle getestet: <Setter Property="FocusVisualStyle" Value="false" /> erzeugt den Fehler.
     
    --
    Viele Gruesse
    Peter
    Freitag, 6. April 2012 19:31
  • Hallo MeMoMu12,

    Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.
    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    Grüße,
    Robert


    Robert Breitenhofer, MICROSOFT  Twitter Facebook
    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Donnerstag, 19. April 2012 12:52
    Moderator