日期:2014-05-18  浏览次数:20841 次

菜鸟提问!大神帮帮!如何用caseswitch语句实现一个button的多个图片点击变换?
这一个button里想要添加四种状态的图片,通过变量的不同选择不同的case进行执行,从而显示不同的图片!各位高手帮帮忙!!谢啦!

------解决方案--------------------
string[] imgPaths = new string[]{"c://img1.jpg","c://img2.jpg","c://img3.jpg","c://img4.jpg"};

private void ChangeBackground(int index)
{
this.btn1.Background = Image.FromFile(imgPaths[index]);
}

编程要注意的是,能够不用if-else,switch的时候就尽量不要用,一旦用了,那么你的程序的扩展性就不好了
------解决方案--------------------
<ControlTemplate x:Key="State" TargetType="{x:Type Button}">
<Grid >
<Rectangle x:Name="rectangle" Width="200" Height="200" Focusable="False">
<Rectangle.Fill>
<ImageBrush ImageSource="/1.png"></ImageBrush>
</Rectangle.Fill>
</Rectangle>
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=S}" Value="2">
<Setter TargetName="rectangle" Property="Fill">
<Setter.Value>
<ImageBrush ImageSource="/2.png" ></ImageBrush>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Path=S}" Value="3">
<Setter TargetName="rectangle" Property="Fill">
<Setter.Value>
<ImageBrush ImageSource="/3.png" ></ImageBrush>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Path=S}" Value="4">
<Setter TargetName="rectangle" Property="Fill">
<Setter.Value>
<ImageBrush ImageSource="/4.png" ></ImageBrush>
</Setter.Value>
</Setter>
</DataTrigger>

然后后台定义DataContext绑定s