我正在从一个WPF项目中读取代码,该项目具有以下XAML代码(我省略了样板部分(:
<Window x:Class="AdornedControlSample.Window1"
...
x:Name="window"
...
>
<Canvas
Grid.Row="1"
x:Name="canvas"
>
...
请注意,此XAML文件中的任何位置都没有定义任何Grid
。所以,我的问题是:
Canvas
定义中Grid.Row="1"
的用途是什么x:Name="window"
的作用是什么?我在后面的代码中没有看到任何引用window
的内容。(不过也有对Window1
的引用。(
问题1
在您的示例中,Grid.Row
根本没有任何用途。您给了它一个值,但不会使用该值,因为Canvas
周围没有Grid
。它也不会给出错误,因为它是一个有效的属性/值。RowProperty
是在Canvas
类中定义的。
问题2
它为UI元素提供了一个唯一的名称(在窗口本身内(。目前,它没有任何目的。这样你就可以安全地取下它。但是,如果您想访问视图代码背后的窗口,x:name
是有作用的。但是您也可以通过this
关键字访问该窗口。