因此,我在菜单栏中放置了一个放大按钮,并且在下面的几个级别上有一个控件,我希望能够执行放大命令并放大正在查看的对象并重新绘制。
据我从阅读中了解到,命令通常会通过来自命令源(在本例中为按钮)的预览事件冒泡,然后向下隧道返回到命令源,寻找将命令绑定(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/