Ответ 1
Canvas.SetLeft(theObject, 50)
У меня есть прямоугольник в 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;
}
Кто-нибудь знает, что такое синтаксис?
Canvas.SetLeft(theObject, 50)
Попробуйте это
theObject.SetValue(Canvas.LeftProperty, 50d);
В DependencyObject (база большинства классов WPF) существует группа методов, которые обеспечивают общий доступ ко всем свойствам зависимостей. Они
Изменить Обновлен набор для использования двойного литерала, так как целевой тип является двойным.
Поскольку мы меняем свойство "объекта", было бы лучше использовать метод offeredte by JaredPar:
theObject.SetValue(Canvas.LeftProperty, 50d);