C# 如何访问代码中StackPanel的Canvas.Left属性?
假设我有以下XAML:C# 如何访问代码中StackPanel的Canvas.Left属性?,c#,wpf,xaml,canvas,C#,Wpf,Xaml,Canvas,假设我有以下XAML: <Canvas Grid.Column="3" HorizontalAlignment="Right" > <StackPanel Name="myStackPanel" Canvas.Left="80"> </StackPanel> </Canvas> 不起作用只是想: Canvas.SetLeft(myStackPanel, newValue); 这是所有附加的依赖项属性的情况。。。您将在注册它的
<Canvas Grid.Column="3" HorizontalAlignment="Right" >
<StackPanel Name="myStackPanel" Canvas.Left="80">
</StackPanel>
</Canvas>
不起作用只是想:
Canvas.SetLeft(myStackPanel, newValue);
这是所有附加的依赖项属性的情况。。。您将在注册它的类型上找到两个静态方法GetMyProperty和SetMyProperty。(这是约定)不要在WPF的过程代码中操纵UI元素的属性。使用数据绑定。@HighCore:在代码隐藏中修改视图本身并没有问题。视图模型不应与任何给定视图的设计紧密耦合。如果他正在实现一个窗口管理器,那么一定要将
Canvas.Left
绑定到WindowModel.Left
;窗口的位置是视图模型应该知道的核心属性。如果他正在调整视图模型没有理由知道的某个元素,那么他可以按程序进行调整。@MikeStrobel我知道,但很可能是第一种情况。嘿,伙计们,如果有人单击某个按钮,我想让图像消失。当图像消失时,右边的东西需要向左移动。可以吗?
Canvas.SetLeft(myStackPanel, newValue);