WPF 在 MouseEnter 事件上修改 UIElement
WPF Modifying an UIElement on a MouseEnter Event
我使用 WPF。我在边框内有一个网格,我想让在触发 mouseEnter 时在我的网格内显示一个按钮(否则不可见)。
我可以拖动这个边框来玩 e.GetPosition(myCanvas).X 或 Y 来移动所有东西。
现在我尝试访问我的网格内的按钮以让它显示,但我卡住了。
在我的 MouseEnter 事件中我这样做了:
UIElement source = (UIElement)sender;
但我无法"dissociate"来源...没有子集。
有办法吗?
您可能希望在表单上创建一个 DependencyProperty,您可以将按钮的可见性 属性 绑定到该属性。然后在边框的MouseEnter 和MouseLeave 中,设置DependencyProperty。
Border class 没有 Children 属性 但它有一个 Child 属性,您可以将其转换为 Grid,前提是 Border 的 child 实际上是一个 Grid:
Border border = (Border)sender;
Grid grid = border.Child as Grid;
if (grid != null)
{
Button button = grid.Children[0] as Button;
if(button != null)
button.Visibility = Visibility.Visible;
}
如果您正在处理 Border 元素的 MouseEnter 事件并且 Border 内的 Grid 包含 Button 元素,则此代码应该有效。如果您正在处理 Grid 的 MouseEnter 元素,您当然应该将 sender 参数直接转换为 Grid。
我没想过在网格上执行 mouseenter。它就像魅力一样。
我现在可以继续了。
Grid sourceG = (Grid)sender;
sourceG.Children[0].Visibility = Visibility.Visible;
我使用 WPF。我在边框内有一个网格,我想让在触发 mouseEnter 时在我的网格内显示一个按钮(否则不可见)。
我可以拖动这个边框来玩 e.GetPosition(myCanvas).X 或 Y 来移动所有东西。
现在我尝试访问我的网格内的按钮以让它显示,但我卡住了。
在我的 MouseEnter 事件中我这样做了:
UIElement source = (UIElement)sender;
但我无法"dissociate"来源...没有子集。
有办法吗?
您可能希望在表单上创建一个 DependencyProperty,您可以将按钮的可见性 属性 绑定到该属性。然后在边框的MouseEnter 和MouseLeave 中,设置DependencyProperty。
Border class 没有 Children 属性 但它有一个 Child 属性,您可以将其转换为 Grid,前提是 Border 的 child 实际上是一个 Grid:
Border border = (Border)sender;
Grid grid = border.Child as Grid;
if (grid != null)
{
Button button = grid.Children[0] as Button;
if(button != null)
button.Visibility = Visibility.Visible;
}
如果您正在处理 Border 元素的 MouseEnter 事件并且 Border 内的 Grid 包含 Button 元素,则此代码应该有效。如果您正在处理 Grid 的 MouseEnter 元素,您当然应该将 sender 参数直接转换为 Grid。
我没想过在网格上执行 mouseenter。它就像魅力一样。 我现在可以继续了。
Grid sourceG = (Grid)sender;
sourceG.Children[0].Visibility = Visibility.Visible;