WPF (c#) でボタンのコントロール テンプレートを変更しようとすると、非常に奇妙な問題が発生します。
私は今、次のコードを持っています:
<Window.Resources>
<Style x:Key="ButtonFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="2" SnapsToDevicePixels="true" Stroke="Black" StrokeThickness="1" StrokeDashArray="1 2"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="MacOSX-Close" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Background="Black" BorderThickness="0">
<Image x:Name="bgimg" Source="bin/debug/Ressources/Images/GUI/frame-btn-defaulted.png"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="#ADADAD"/>
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter TargetName="bgimg" Property="Source" Value="bin/debug/Ressources/Images/GUI/frame-btn-defaulted.png"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
したがって、これは機能していません。それは言う
"{DependencyProperty.UnsetValue}" is no valid value for property "System.Windows.Controls.Image.Source" on a setter.
そして、グリッドで複数の画像を使用しようとして(子は1つしか設定できないため)、「可視性」プロパティを変更したところ、ボタンがまったく表示されませんでした!!! ボタンも画像もありません。そして、はい、私はイメージが存在すると確信しています。しかし、ソースはコンパイルされたプログラムではなく、ソリューションのルートに関連しています...これは問題ですか? 私を助けてください:)私はここで少し必死になっています... :(
よろしくお願いします ;) 何か不明な点があればお尋ねください。