- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个允许我在窗口中绘制矩形的 MVVM WPF 应用程序。现在,我创建了一个覆盖整个屏幕的 Canvas 元素。按照其他问题和指南,似乎对鼠标事件(例如 MouseDown
、MouseUp
等)使用命令绑定(bind)的唯一方法是使用 System.Windows。交互组件并为鼠标事件添加 EventTriggers。但是,这似乎不适用于 canvas 元素。单击、单击/按住、单击/拖动、右键单击,它们都不会触发我的命令的 Execute 方法。
Canvas 元素支持哪些事件?为什么 MouseDown
或 PreviewMouseDown
不起作用?
窗口的 XAML:
<Window x:Class="RutheniumReader.SnippingWindow.SnippingShade"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:snippingWindow="clr-namespace:MyApp.SnippingWindow"
mc:Ignorable="d"
Title="Snipping Window"
WindowState="Maximized"
Background="Black"
>
<Window.DataContext>
<snippingWindow:SnippingWindowViewModel />
</Window.DataContext>
<Canvas x:Name="Canvas">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDown">
<i:InvokeCommandAction Command="{Binding Path=MouseDownCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Canvas>
</Window>
出于测试目的,我尝试了以下事件但没有成功:
Button
元素,则可以使用Button
元素最佳答案
鼠标事件不起作用,因为未设置 Canvas 的背景。如果控件(在本例中是您的 Canvas
)没有设置背景颜色,背景颜色将默认为 null,这会使控件无法进行 HitTest 。
背景可以显式设置或通过样式设置,只要它的值不同于 null
(即使是“透明”),它就应该拾取鼠标事件。
关于c# - WPF Interaction.Triggers MouseDown EventTrigger 不适用于 Canvas 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38556603/
我正在使用 MvmmCross v3 框架和 Windows.UI.Interactivity 开发 WinRT . 我想要一个带有 EventTrigger 的 TextBox,用于启动命令的事件
我想在触摸特定键(例如,空格键)时使用 EventTrigger 调用命令 目前我有: 现在我如何指定只有当 KeyDown 与空
我在一个循环中使用一组游戏对象(图像 Sprite )填充了一个网格布局。在循环中,我希望图像是可点击的,并将玩家带到不同的场景。 如果尝试以下它有效: EventTrigger[] trig
我在 DataTemplate 中有一个自定义行为,它引发了一个自定义路由事件。我想用 TriggerAction 处理该事件(发送消息、调用命令等)。
如您所知,您不能在没有行为的情况下将事件直接绑定(bind)到命令: 这工作得很好,但是现在我必须从双击 Data
我希望能够使用 EventTrigger 设置属性,但这有很多问题。 1) EventTriggers 仅支持 Actions,因此我必须使用 StoryBoard 来设置我的属性。 2)一旦我使用
我正在尝试采用一种风格来执行我的所有触发器。这就是我所拥有的,但 SoundPlayerAction 没有触发:
我想在应用程序启动时播放一次 wav 文件(WPF 应用程序 .NET 4.5)。我读到一个很好的实现方法是使用 EventTrigger 和 SoundPlayerAction 这样的:
我有一个我自定义的 WPF TreeView,看起来像这样: 我定义了一个 EventTrigger 来响应点击:
我现在正在学习游戏设计,首先,SuperMarioBro 是我现在要用很少的引擎完成的游戏。我想设计一个触发器,这样当马里奥点击问号时,就会出现蘑菇、金币或白花等。所以当击中它时,trigger 被触
我有一个类 MyAttachedEventClassAquarium,它定义了从 MSDN 文档中获取的自定义附件。我有一个 Window,它在 XAML 中使用 EventTrigger 来 Hoo
我在 EventTrigger 中有以下绑定(bind): ... 过程如下:自定义控件(即它的模板)有一个名为 SoundFile 的属性,它是一个枚
我正在尝试在触发自定义路由事件(由我定义)时触发 Storyboard播放。该事件称为 CustomTest 并在 MyControl 中定义。 虽然正在触发事件,但触发器并未播放 Storyboar
NOTE I have asked the related question (with an accepted answer): How to combine DataTrigger and Tri
在 Unity3D 2017 版中,您可以通过执行以下操作一次添加多个 EventTriggers: for (int i = 0; i { InventorySlotCopy(); });
在 Unity3D 2017 版中,您可以通过执行以下操作一次添加多个 EventTriggers: for (int i = 0; i { InventorySlotCopy(); });
我在 ItemsControl 的 DataTemplate 中有一个 Grid,所以这个网格会有很多副本。我想在网格上单击鼠标以触发 DataTemplate 之外的元素的 Storyboard 。
就像键盘的 Input.GetKey() 有什么方法可以从 UI 按钮 事件触发器 OnPointerDown 获取连续输入?因为对于带有动画的运动控制,它给出了非常奇怪的输出?我不得不一次又一次地点
我是一名优秀的程序员,十分优秀!