不知道还有没兄弟在线,帮兄弟解个惑,有关控件模板。

sjdev 2010-02-13 09:56:10
我在使用xaml,想使用模板来自定义Tab控件的风格。
我想做出的效果是,当鼠标悬停在一个TabItem上时,改变其背景。
通过代码<Trigger Property="Selector.IsSelected" Value="True">可以定义TabItem选中的效果,
查了一下msdn,好像没有鼠标悬停状态的,请问如何做出悬停效果?

<Style x:Key="OutlookTabItemStyle" TargetType="{x:Type TabItem}">
<Setter Property="Padding" Value="12,2,12,2"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Border
SnapsToDevicePixels="true"
x:Name="Bd"
Background="{TemplateBinding Background}"
BorderThickness="1"
BorderBrush="#FF6593CF">
<ContentPresenter
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
Margin="{TemplateBinding Padding}"
VerticalAlignment=
"{Binding
Path=VerticalContentAlignment,
RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"
ContentSource="Header"
RecognizesAccessKey="True"
HorizontalAlignment="Left"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="Selector.IsSelected" Value="True">
<Setter
Property="Background"
TargetName="Bd"
Value="{DynamicResource OutlookButtonHighlight}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
...全文
89 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjdev 2010-02-14
  • 打赏
  • 举报
回复
我使用下面的代码实现了TabItem鼠标Enter和Leave的动画效果,在动画中对TabItem的高度属性进行了动画。现在有一个问题:
1.这段代码目前只是对tabitem1处理,能不能对TabControl的所有TabItem统一处理?
2.我使用了template定义了tabcontrol的Visual Style,能不能把这个动画也定义在template中,如何定义?
3.想改变TabItem的BackGround,或者Foreground,应该使用什么动画?
                <TabItem.Triggers>
<EventTrigger RoutedEvent="TabItem.MouseEnter">
<BeginStoryboard>
<Storyboard RepeatBehavior="Forever" AutoReverse="True">
<DoubleAnimation Storyboard.TargetName="tabitem1"
Storyboard.TargetProperty="Height"
From="30" To="40" Duration="0:0:0">

</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="TabItem.MouseLeave">
<BeginStoryboard>
<Storyboard RepeatBehavior="Forever" AutoReverse="True">
<DoubleAnimation Storyboard.TargetName="tabitem1"
Storyboard.TargetProperty="Height"
From="40" To="30" Duration="0:0:0">

</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</TabItem.Triggers>
sjdev 2010-02-14
  • 打赏
  • 举报
回复
我使用EventTrigger,可是发现TabControl和TabItem都没有MouseHover事件,难道要用TabItem的
MouseEnter和MouseLeave不成?
sjdev 2010-02-14
  • 打赏
  • 举报
回复
使用storyboard,那需要什么事件呢?MouseHover?
jv9 2010-02-14
  • 打赏
  • 举报
回复
你说的悬停效果是个动画对么? 默认模板没有这样的属性,只能自定义,创建storyboard实现。
资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 松下电工数字压力传感器用户手册详细介绍了DP-100系列数字压力传感器,涵盖其技术参数、操作方法及适用场景等,适用于各类需要精准压力测量的工业环境。 双屏显示:主屏与输出动作同步,可同时显示当前值和基准值,便于实时监控与调整。显示屏为12段字母数字显示,数字清晰易读。 三色指示:屏幕颜色随传感器状态变化(红、绿、橙),便于快速判断工作状态。 紧凑结构:尺寸仅□30mm,适合空间狭窄的安装环境。 多种操作模式:提供RUN模式(日常操作)、菜单设定模式(深入设置如输出模式切换)及PRO模式(高级功能如应差调整、复制设定)。 安全认证:DP-101(A)/102(A)型号通过特定认证,确保产品安全可靠。 复制功能:可通过数据通信将主传感器设定内容复制到其他传感器,减少人工设定错误,节省时间。 高性能传感:具备高精度,分辨率1/2,000,反应时间2.5ms(最长5,000ms可调),温度特性±0.5%F.S.,重复精度±0.1%F.S. 电子元件吸附检测:监测吸盘是否成功吸附电子元件。 总压力监测:测量管道或容器内的压力水平。 空气泄漏检测:通过压力变化检测泄漏情况。 DP-101□:适用于低压环境(-100kPa至100kPa)。 DP-102□:适用于高压环境(0kPa至1MPa)。 订购时需根据实际需求选择合适型号,考虑传感器的适用范围和工作条件。手册提供详细订购流程及注意事项,包括相关认证信息(如韩国S标志)。 复制功能:通过数据通信将主传感器设定复制到其他传感器,支持多种设定模式,避免设定错误,节省时间。 操作模式:RUN模式用于日常监控,菜单设定模式用于深入设置,PRO模式提供高级功能。 使用前需仔细阅读手册,了解各功能使用方法。遵循安全指南,正确安装和使用传感器,避免损坏。对于

8,756

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧