que tienen un rectángulo en mi XAML y quieren cambiar su propiedad Canvas.Left
en código detrás:¿Cómo puedo acceder a una propiedad adjunta en el código?
<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>
Pero esto no funciona:
private void txt_KeyDown(object sender, KeyEventArgs e)
{
theObject.Canvas.Left = 50;
}
¿Alguien sabe lo que la sintaxis es hacer ¿esta?
+1, tengo que amar la seguridad del tipo. Sin embargo, tengo curiosidad por saber por qué SetLeft toma un UIElement en lugar de un DependencyObject – JaredPar
@JaredPar: supongo que, dado que SetLeft es específicamente un método de Canvas, entiende qué tipos tendría sentido asignarle una propiedad Left. Considera que esto es UIElement, esto tal vez aumente la detección de código defectuoso donde accidentalmente se le pasa la variable incorrecta. – AnthonyWJones
https://msdn.microsoft.com/en-us/library/windows.ui.xaml.controls.canvas.left.aspx Canvas.Left es una propiedad adjunta, que admite el uso de XAML. Al establecer esta propiedad en código, use SetLeft en su lugar. –