WPF 自定义一个Button控件,通过设置3个张图片,实现:平常状态、鼠标移入、鼠标按下时分别显示3张图片
使用时这么写:<local:MyButtonNormal="images/normal.png"High="images/high.png"Down="images/do...
使用时这么写:
<local:MyButton Normal="images/normal.png" High="images/high.png" Down="images/down.png"/> 展开
<local:MyButton Normal="images/normal.png" High="images/high.png" Down="images/down.png"/> 展开
3个回答
展开全部
wpf的控件可以使用trigger(触发器)来更改控件不同状态下的显示。
例如你要设置鼠标按下时字体的大小
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="FontSize" Value="20"/>
</Trigger>
</Style.Triggers>
按照你的目标,你首先要修改button的模板。在button的template里加
<Grid>
<Image Name="img1" Source="/WpfApplication1;component/Image/1.jpg" Visibility="Visible"/>
<Image Name="img2" Source="/WpfApplication1;component/Image/2.jpg" Visibility="Collapsed"/>
<Image Name="img3" Source="/WpfApplication1;component/Image/3.jpg" Visibility="Collapsed"/>
</Grid>
然后修改相应的trigger即可。
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="img1" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="img2" Property="Visibility" Value="Visible"/>
<Setter TargetName="img3" Property="Visibility" Value="Collapsed"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="img1" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="img2" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="img3" Property="Visibility" Value="Visible"/>
</Trigger>
例如你要设置鼠标按下时字体的大小
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="FontSize" Value="20"/>
</Trigger>
</Style.Triggers>
按照你的目标,你首先要修改button的模板。在button的template里加
<Grid>
<Image Name="img1" Source="/WpfApplication1;component/Image/1.jpg" Visibility="Visible"/>
<Image Name="img2" Source="/WpfApplication1;component/Image/2.jpg" Visibility="Collapsed"/>
<Image Name="img3" Source="/WpfApplication1;component/Image/3.jpg" Visibility="Collapsed"/>
</Grid>
然后修改相应的trigger即可。
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="img1" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="img2" Property="Visibility" Value="Visible"/>
<Setter TargetName="img3" Property="Visibility" Value="Collapsed"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="img1" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="img2" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="img3" Property="Visibility" Value="Visible"/>
</Trigger>
展开全部
使用这种写法的话,就不是定义样式和触发器的作法了,你得继承一下Button,然后定义依赖项属性。
代码就不在这里写了,麻烦,百度Hi上说吧
代码就不在这里写了,麻烦,百度Hi上说吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不需要自定义控件,那是winform的做法。
使用style和触发器
或者修改控件模板。
使用style和触发器
或者修改控件模板。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询