私は自分のアプリケーションにリソース辞書を作成しています。そこにいくつかの「アイコン+テキスト」ボタンがあります。彼らはすべてが(アイコンとテキストを除く)と同じになりますので、私は他の人への拠点として、一般的なスタイルを作成しました:基本スタイルとカスタムカスタムコントロールを使用する
<!-- Generic ActionButtonStyle -->
<Style x:Key="ActionButtonStyle" TargetType="{x:Type Button}">
<!-- some setter properties -->
<Setter Property="ContentTemplate" Value="{DynamicResource ButtonDataTemplate}"/>
</Style>
<DataTemplate x:Key="ButtonDataTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="24" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image Source="{Binding Source}"
Stretch="Uniform"
Grid.Column="0"
Margin="2"/>
<TextBlock Text="{Binding text}"
TextWrapping="Wrap"
Grid.Column="1"
Margin="2"
VerticalAlignment="Center"/>
</Grid>
</DataTemplate>
そして私はアイコンのためのいくつかの画像を持っている:
<!-- Icons -->
<ImageSource x:Key="textToSpeech">Images/GreyIcons/TextToSpeech.png</ImageSource>
<ImageSource x:Key="play">Images/GreyIcons/Play.png</ImageSource>
<ImageSource x:Key="playSound">Images/GreyIcons/PaySound.png</ImageSource>
.
.
.
.
<ImageSource x:Key="group">Images/GreyIcons/Goup1.png</ImageSource>
そして、各ボタン(各アイコンに対応)ごとに個別のスタイルを作成したいと思います。このようなもの:
<!-- Specific ActionButtonStyles -->
<Style x:Key="TextToSpeechButtonStyle" TargetType="{x:Type Button}" BasedOn="{StaticResource ActionButtonStyle}">
<Setter Property="Content">
<Setter.Value>
<Image Source="{StaticResource textToSpeech}"
</Setter.Value>
</Setter>
</Style>
私はこれがうまくいかないことを知っています。どうすればいいですか?ジェネリックボタンのカスタムユーザーコントロールを作成する必要がありますか?テキストはモデル内のオブジェクトにバインドされ、コマンドもアクションに割り当てられます。
私はそれを知っていますが、どのセッターを使うべきですか? (いくつかのコードが不足していた、私はちょうど私の質問を更新しました) – Joana