Rei*_*ini 7 wpf xaml styles image button
无法让这个工作:
<UserControl>
<UserControl.Resources>
<ResourceDictionary>
<Style x:Key="TestStyle" TargetType="{x:Type Button}">
<Setter Property="Button.Content">
<Setter.Value>
<Image Source="D:\Temp\dictionary16.png"/>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
</UserControl.Resources>
<StackPanel VerticalAlignment="Top" HorizontalAlignment="Left">
<Button Style="{StaticResource TestStyle}"/>
<Button Style="{StaticResource TestStyle}"/>
</StackPanel>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
此代码抛出以下异常(指向第二个按钮):
指定的元素已经是另一个元素的逻辑子元素.首先断开它.
H.B*_*.B. 18
样式创建了一个实例Image,你不能在这样的两个地方使用它.您可以将图像创建为单独的资源,并在样式中引用它,然后将在使用样式的每个位置创建一个新图像.x:Shared= false
例如
<UserControl>
<UserControl.Resources>
<Image x:Key="img" x:Shared="false" Source="D:\Temp\dictionary16.png" />
<Style x:Key="TestStyle" TargetType="{x:Type Button}">
<Setter Property="Content" Value="{StaticResource img}" />
</Style>
</UserControl.Resources>
<StackPanel VerticalAlignment="Top" HorizontalAlignment="Left">
<Button Style="{StaticResource TestStyle}" />
<Button Style="{StaticResource TestStyle}" />
</StackPanel>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
Rei*_*ini 11
昨天我发现了一个有类似问题的用户:WPF - 改变一个按钮的内容?
这篇文章让我解决了这个问题(因为stackoverflow的8小时限制而无法发布--.-)
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<Image Source="{mcWPF:LangRes imgSettings16, Bitmap}" Height="14"/>
</DataTemplate>
</Setter.Value>
</Setter>
Run Code Online (Sandbox Code Playgroud)
不知道天气这比HB的解决方案更干净/更脏/更好
| 归档时间: |
|
| 查看次数: |
13245 次 |
| 最近记录: |