- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序有两个Windows
。其中之一是MainWindow
,另一个用于设置。当使用 ShowDialog
单击设置按钮并将其 Owner
设置为 MainWindow
时,SettingsWindow
打开。
在SettingsWindow
上,我在窗口的最底部有一个按钮,当IsMouseOver
为时,它会将颜色更改为红色>True
和蓝色 表示False
。但当光标位于主窗口上时它不会改变。为了清楚起见,下面的图像。我该如何解决这个问题?
案例:光标超出了SettingsWindow,但保持红色,没有变化。
Xaml 代码:
<Window x:Class="AltoSS.SettingsWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="SettingsWindow"
Height="150"
Width="360"
WindowStyle="None"
AllowsTransparency="True"
WindowStartupLocation="CenterOwner">
<!-- Other control codes-->
<Button Grid.Row="2" Content="KAYDET"
FontSize="15"
FontWeight="Bold"
BorderBrush="Gray"
BorderThickness="0,2,0,2">
<Button.Style>
<Style TargetType="Button">
<Setter Property="Background" Value="Blue"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Red"/>
<Setter Property="Foreground" Value="White"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Style>
</Button>
</Window>
最佳答案
好吧,经过一些研究,我找不到发生这种情况的任何逻辑原因。对我来说这更像是一个错误。因此,如果有人确切知道为什么会发生这种情况,请告诉我们!
无论如何,我已经想出了一个解决方法。基本上,我们可以使用 Show() 并添加一些代码来更接近模式行为 - 例如禁用父窗口,直到对话框关闭或用户选择“确定”或“取消”。
示例:
SettingsWindow settingsWindow = new SettingsWindow();
this.IsEnabled = false; //disables the main window
settingsWindow.Owner = this; // main window is the settings window owner
settingsWindow.Show();
settingsWindow.Closed += (o, e1) => { onWindowClosed(o,e1); }; // this is the close event
订阅settingsWindow关闭事件后,我们现在可以在settingsWindow关闭时再次启用父窗口:
private void onWindowClosed(object sender, EventArgs e)
{
this.IsEnabled = true;
}
触发器现在可以正常工作,父窗口将被禁用,直到其子窗口关闭。
关于wpf - 使用 ShowDialog 和无边框窗口时,IsMouseOver 触发器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39258393/
我的元素上有一个 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 如果鼠标悬停在文本框上,但在用户控件中
我是一名优秀的程序员,十分优秀!