c# - 在 Wpf 中,如何将命令从按钮发送到子控件?

标签 c# wpf xaml

因此,我在菜单栏中放置了一个放大按钮,并且在下面的几个级别上有一个控件,我希望能够执行放大命令并放大正在查看的对象并重新绘制。

据我从阅读中了解到,命令通常会通过来自命令源(在本例中为按钮)的预览事件冒泡,然后向下隧道返回到命令源,寻找将命令绑定(bind)到命令的事件处理程序。然而,就我而言,我想要影响的控件是按钮下方的级别。

将绑定(bind)置于被命中的较高级别控件中,然后让该较高级别控件运行较低级别函数上的方法是否正确?

我认为仅让代码将命令目标设置到子后代上可能看起来更干净,但现在我不确定这是否是命令目标实际执行的操作。

我可以像这样放置命令目标吗:

CommandTarget="{Binding ElementName=wavegraphcanvas, Path=CommandTarget, Mode=OneWay}"

在 xaml 中并让它在其子元素中找到该元素?*

我认为会发生的情况是它会从按钮中冒出,然后向下隧道,直到找到元素名称或其他内容

最佳答案

当您知道目标元素是什么时,CommandTarget 是合适的。就你而言,这似乎是真的。

如果您有多个可以接收命令的元素(例如,3 个文本框获取 Paste 命令),则设置 CommandTarget 没有意义。这就是 RoutedCommand 的路由部分的作用;尝试找到适当的元素来应用命令,

关于c# - 在 Wpf 中,如何将命令从按钮发送到子控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17049286/

相关文章:

c# - 适用于 WPF 的 Microsoft .NET 图表控件

WPF 最有效的图片加载方式

WPF 动画 - 为什么我的图像不会旋转?

wpf - ViewModel 位置到子文件夹(XAML,命名空间)

c# - WPF ComboBox 中的级联上下文菜单

c# - 用正则表达式解析字符串

c# - 如何使用 C# 替换字符串的最后一个字符?

c# - 如何定义和编码 BSTR* 类型

c# - ASP.NET MVC 处理请求错误

WPF 在控件上同时设置 DataTemplate 和 ControlTemplate 不起作用