我正在爲我的應用程序創建一個資源字典,我將在其中有一些「圖標+文本」按鈕。因爲他們看起來都一樣(除了圖標和文本),我創建了一個通用的風格作爲基礎,其他:使用泛型作爲基礎vs自定義用戶控件
<!-- 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>
我知道這不起作用。我應該怎麼做?我應該爲通用按鈕創建一個自定義用戶控件嗎?該文本將綁定到我的模型中的一個對象,命令(對一個動作)也一樣。
我知道,但我應該使用哪一個setter? (有些代碼丟失了,我剛剛更新了我的問題) – Joana 2012-04-12 09:20:12