代码之家  ›  专栏  ›  技术社区  ›  Edward Tanguay

如何访问代码隐藏中的附加属性?

  •  91
  • Edward Tanguay  · 技术社区  · 16 年前

    我的XAML中有一个矩形,希望更改它 Canvas.Left 代码隐藏中的属性:

    <UserControl x:Class="Second90.Page"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        Width="400" Height="300" KeyDown="txt_KeyDown">
        <Canvas>
            <Rectangle 
                Name="theObject" 
                Canvas.Top="20" 
                Canvas.Left="20" 
                Width="10" 
                Height="10" 
                Fill="Gray"/>
        </Canvas>
    </UserControl>
    

    但这不起作用:

    private void txt_KeyDown(object sender, KeyEventArgs e)
    {
        theObject.Canvas.Left = 50;
    }
    

    有人知道这样做的语法是什么吗?

    3 回复  |  直到 16 年前
        1
  •  152
  •   Tim Cooper    13 年前
    Canvas.SetLeft(theObject, 50)
    

        2
  •  49
  •   JaredPar    16 年前

    试试这个

    theObject.SetValue(Canvas.LeftProperty, 50d);
    

    DependencyObject(大多数WPF类的基础)上有一组方法,允许公共访问所有依赖属性。他们是

    • 赋值
    • 方法
    • 净值

    编辑 因为目标类型是double,所以更新了该集以使用double文本。

        3
  •  12
  •   Budda    15 年前

    当我们更改“object”的属性时,最好使用jaredpar建议的方法:

    theObject.SetValue(Canvas.LeftProperty, 50d);