C# 如何访问代码中StackPanel的Canvas.Left属性?

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); 这是所有附加的依赖项属性的情况。。。您将在注册它的

假设我有以下XAML:

<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);