【问题标题】:silverlight: How to set attached properties Programmaticallysilverlight:如何以编程方式设置附加属性
【发布时间】:2009-01-08 19:25:53
【问题描述】:

假设我有一个包含一些行定义的网格,以及该网格中的一个子控件。我将如何以编程方式设置子控件的 Grid.Row 属性?

【问题讨论】:

    标签: .net silverlight silverlight-2.0


    【解决方案1】:

    设置值:

    textBlock.SetValue(Grid.RowProperty, 3);
    

    重置值:

    textBlock.SetValue(Grid.RowProperty, null);
    

    【讨论】:

    • 如果你愿意,你可以使用成语:Grid.SetRow(textBlock, 3);附加属性通常有 Get 和 Set 方法(虽然我不认为这是强制性的,所以可能会有例外)。
    • 我注意到(这是与 SL3 测试版一起使用的)要更改子控件的位置,您不能只设置此属性——您需要从父网格中删除控件,设置此处显示的属性,然后将其重新添加到父级。
    【解决方案2】:

    实际上要清除一个值,你应该使用这个:

    textBlock.ClearValue(Grid.RowProperty);
    

    【讨论】:

      【解决方案3】:

      我不是 100% 确定这是在 SilverLight 中,但在 WPF 中,您可以在定义附加属性的类型上调用静态方法(称为 SetX,其中 X 是属性)并将其传递给要设置的控件上的值,和值:

      Grid.SetRow(MyControl, myRowNumber); 
      

      【讨论】:

      • 不确定我的头,你也许可以把它归零。
      猜你喜欢
      • 2023-03-31
      • 1970-01-01
      • 2021-06-22
      • 2023-01-03
      • 2021-05-20
      相关资源
      最近更新 更多