- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 TabItem
样式存在一些问题。这是样式:
<Style TargetType="{x:Type TabItem}">
<Setter Property="Width" Value="160"/>
<Setter Property="Background" Value="Transparent" />
<Setter Property="Height" Value="70"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Border Name="Border" Background="Transparent">
<ContentPresenter x:Name="ContentSite"
VerticalAlignment="Center"
HorizontalAlignment="Left"
ContentSource="Header"
Margin="10,2"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="Red" />
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter TargetName="Border" Property="Background" Value="Green" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Border" Property="Background" Value="Blue" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
问题是 IsMouseOver
事件也会在其任何子项上方移动时触发。我已将 SourceName="ContentSite"
添加到触发器:
<Trigger SourceName="ContentSite" Property="IsMouseOver" Value="True">
使用此代码,IsMouseOver 不再由移动子元素触发,但它引入了另一个问题。仅当光标位于 tabitem 的标题上方时才会触发 IsMouseOver 事件。描述了相同的问题here由另一个用户。建议的答案是将 Background="Transparent"值添加到边框,但它对我不起作用。
最佳答案
如果我正确理解您的问题,您所要做的就是将 Trigger
上的 SourceName
从 ContentSite
更改为 Border。
请尝试以下样式:
<Style TargetType="{x:Type TabItem}">
<Setter Property="Width" Value="160"/>
<Setter Property="Background" Value="Transparent" />
<Setter Property="Height" Value="70"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Border Name="Border" Background="Transparent">
<ContentPresenter x:Name="ContentSite"
VerticalAlignment="Center"
HorizontalAlignment="Left"
ContentSource="Header"
Margin="10,2"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="Red" />
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter TargetName="Border" Property="Background" Value="Green" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="Border">
<Setter TargetName="Border" Property="Background" Value="Blue" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
并且,如果您希望仅对未选定的选项卡发生这种情况,您可以尝试以下MultiTrigger
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" SourceName="Border" Value="True" />
<Condition Property="IsSelected" Value="False" />
</MultiTrigger.Conditions>
<Setter TargetName="Border" Property="BorderBrush" Value="Blue" />
</MultiTrigger>
关于wpf - TabItem 上的 IsMouseOver 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19644183/
我的元素上有一个 IsMouseOver 触发器。我也有一个拖动 Action 发生,另一个元素捕获鼠标,因此 IsMouseOver 触发器永远不会发生,但我明确希望它在我拖动它时发生在某些元素上(
WPF: one two
我有一个带有包含 Path 元素的自定义内容的按钮。Path 的 Fill 属性与按钮的 IsMouseOver 属性关联。 任何人都可以指出代码有什么问题以及触发器没有触发的原因。 下面是完整的示例
我的应用程序有一种磁贴系统。请看下面的代码:
当我尝试为WPF触发器的按钮“IsMouseOver”更改图像时,控件闪烁了很多。是否有解决此问题的方法? 最佳答案 检查图像是否已经设置为您要设置的图像。如果将其设置为您要设置的设置,则无需再次设置
我正在尝试更改 StackPanel 中某个项目的不透明度,但它似乎没有任何作用,我已经在网上搜索了大约一个小时,但我似乎找不到什么我做错了...这是我的代码:
我有一个列表框,当鼠标悬停在某个项目上时,它会显示该项目的删除按钮。问题是 IsMouseOver 会在突出显示的项目中触发大约 4 个像素,因此当将鼠标悬停在多个项目上时,删除按钮似乎不会随着您上下
我正在就此问题的原因打开一个单独的问题,以便我的另一个问题可以是关于可能的解决方法。 所以我为 ListView 启用了拖放功能,但我注意到 UIelement.IsMouseOver 在拖放操作期间
我执行拖放操作并希望在 ismouseover 属性为 true 时触发图像元素以更改其源。 现在我意识到当拖放操作有效时 ismouseover 属性不会更新。 在拖放处于事件状态时,是否有其他方法
我定义了以下正在应用的样式(当文本变为红色时),但我似乎无法使 Background 属性起作用。谁能告诉我这有什么问题?
我有一个简单的 WPF ListView,其中定义了两列。默认情况下,当您将鼠标移到一行的任何部分时,它将以跟踪外观显示该行(我使用的是带有 Aero 的 Windows 7)。这是一个简单示例的 X
我的 TabItem 样式存在一些问题。这是样式:
我在 WPF 窗口的 Window.Resources 中有以下代码。它基本上是在创建一个项目,该项目表示一个网格,左侧有一个标签,右侧有一个按钮。当我将鼠标悬停在标签或按钮上时,该行会按预期改变颜色
我最近做了一些控件设计,想使用它们,但我发现有问题。通常复选框有 4 个图像: 正常状态时 当鼠标悬停 选中时 选中它并将鼠标悬停在上面时 但是 4. 状态不存在,我会告诉你我到目前为止是怎么做的:
我有一个窗口覆盖了 RadioButton 的 ControlTemplate 以显示其中的自定义控件。在自定义控件中,我有一个按钮的可见性与 IsMouseOver 相关联,它仅在鼠标悬停在控件上时
这个简化的例子; 描绘由重叠的两个元素 A 和 B 组成的维恩图。 如果我将鼠标悬停在 (A AND (NOT B)) 上,所有 A 都会亮起。 如果我将鼠标悬停在 (B AND (NOT A)) 上
我有一个 TabItem 样式的问题,也许你们中的某个人可以帮助我。 遵循有问题的风格:
所以我试图对我的文本框进行一些样式设置,这个想法是我想在将鼠标悬停在文本框上时设置 BorderBrush 的样式,但由于某种原因它没有更改边框,所以我也尝试更改背景,同样的事情在那里.那时我意识到它
当鼠标悬停在 mahapp 按钮上时,我试图更改它的背景颜色。问题是,如果我使用下面的代码:
修改:问题原前提不正确,修改问题: 基本上我希望只有当鼠标悬停在包含的用户控件上时按钮才可见。这是我所拥有的简化版本: Some Text 如果鼠标悬停在文本框上,但在用户控件中
我是一名优秀的程序员,十分优秀!