私は、ホバー/クリックエフェクトでもう少し上手くしたいトンとトンのボタンを持つアプリケーションを持っています。私はこれにスタイリングテンプレートを使用することができたので、それぞれのボタンごとにトリガーを書く必要はありませんでしたが、このフェーズでは固執しています。ホバー上でボタンの背景画像を変更する/テンプレートを使用してクリックする
私はあなたが私はこのコードスニペットで、ここで達成しようとしています何の一般的なアイデアを得ると思う:
<Button BorderBrush="#00000000" Foreground="#00000000" Height="20" HorizontalContentAlignment="Right" IsEnabled="True" Name="btnMinimizeWindow" Width="21" DockPanel.Dock="Right" Margin="0,0,4,2" BorderThickness="0" Focusable="False" Style="{StaticResource ModernButton}">
<Button.Background>
<ImageBrush ImageSource="/MyApp;component/Images/btnMinimize.png" />
</Button.Background>
<Button.Resources>
<DataTemplate x:Key="Default" >
<Image Source="/MyApp;component/Images/btnMinimize.png" />
</DataTemplate>
<DataTemplate x:Key="Hover">
<Image Source="/MyApp;component/Images/btnMinimizeHover.png" />
</DataTemplate>
<DataTemplate x:Key="Active">
<Image Source="/MyApp;component/Images/btnMinimizeActive.png" />
</DataTemplate>
</Button.Resources>
</Button>
とテンプレートファイル:私はこの問題に取り掛かるにはどうすればよい
<Style x:Key="ModernButton" TargetType="{x:Type Button}">
<Setter Property="Padding" Value="1"/>
<Setter Property="Background" Value="Transparent" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Name="border" Background="{TemplateBinding Background}">
<ContentPresenter Name="Content" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Margin="{TemplateBinding Padding}"
RecognizesAccessKey="True"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
</Trigger>
</Trigger>
<Trigger Property="IsPressed" Value="True">
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
?このようにすることも可能ですか、何百万というトリガーでコードを乱雑にする必要がありますか?
エレガントなソリューション、魅力のように働く。添付のプロパティは、今から私の親友です:-) – BOBO