我为了在所有按钮,在我的项目申请它写在resorces.xaml验证码:书写风格背后的C#
<Style TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid>
<Rectangle x:Name="rect" Style="{DynamicResource rectangle_style}" Cursor="Hand">
<Rectangle.Fill>
<ImageBrush ImageSource="Attempts\image.jpg" Stretch="UniformToFill"/>
</Rectangle.Fill>
</Rectangle>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Content=""/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsFocused" Value="True"/>
<Trigger Property="IsDefaulted" Value="True"/>
<Trigger Property="IsMouseOver" Value="True"/>
<Trigger Property="IsPressed" Value="True"/>
<Trigger Property="IsEnabled" Value="False"/>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我会在后面的C#编辑从这个代码风格,因为我想要从代码中动态地改变图片源,我怎么能从C#后面的代码写出来?
不要在代码中操作UI元素。如果您需要动态ImageSources,请在您的ViewModel的某处放置一个“public string ImageSource {get; set;}”并将图像绑定到该图像上。 – 2013-03-20 16:05:26
你*真的*不想这样做,除非你绝对被迫;处理WPF UI元素的创建(以及所有相关结构)是一项艰巨而脆弱的任务。 – JerKimball 2013-03-20 16:08:49
@JerKimball你被骗了...当我睡觉时,你在棋盘上移动了2个棋子。当我得到一些时间后,我会继续这样做。 – 2013-03-20 16:19:50