我正在阅读WPF project的代码,其中包含以下XAML代码(我省略了样板部件):
<Window x:Class="AdornedControlSample.Window1"
...
x:Name="window"
...
>
<Canvas
Grid.Row="1"
x:Name="canvas"
>
...
请注意,此XAML文件中的任何位置都无法定义否 Grid
。所以,我的问题是:
Grid.Row="1"
定义中Canvas
的目的是什么?x:Name="window"
的目的是什么?我没有在代码隐藏中看到引用window
的任何内容。 (但有Window1
的引用。)答案 0 :(得分:2)
问题1
在您的示例中,Grid.Row
完全没有任何意义。您为其指定了一个值,但由于Grid
周围没有Canvas
,因此不会使用该值。它也不会给出错误,因为它是有效的属性/值。
RowProperty
在Canvas
类中定义。
问题2
它为UI元素提供了一个唯一的名称(在窗口内)。目前,它没有任何意义。所以你可以安全地删除它。但是,如果要在视图的代码隐藏中访问窗口,x:name
有用。但您也可以通过this
关键字访问该窗口。