通常,WPF控件是在.xaml文件中声明而不是在代码后面的.xaml.cs文件中声明的。但是,有时我需要在代码后面使用其中一些控件来操纵它们。如果这样的控件“驻留”在.xaml文件中,我该如何获取其句柄?
通常,WPF控件是在.xaml文件中声明而不是在代码后面的.xaml.cs文件中声明的。但是,有时我需要在代码后面使用其中一些控件来操纵它们。如果这样的控件“驻留”在.xaml文件中,我该如何获取其句柄?
// Finding the grid that is generated by the ControlTemplate of the Button
Grid gridInTemplate = (Grid)myButton1.Template.FindName("grid", myButton1);
我不确定你的问题是什么,所以我会尝试回答我理解为你的两种情况。
1)如果您想声明一个显式控件,然后直接编辑它,您只需要设置名称属性,如下所示:
<Canvas x:Name="myCanvas"/>
myCanvas.Background = Brushes.Blue;
2) 如果您想声明一个通用控件,并且多次使用它,可以按照以下方式进行:
<Window>
<Window.Resources>
<Ellipse x:Key="myEllipse" Height="10" Width="10">
</Window.Resources>
</Window>
Ellipse tempEllipse = (Ellipse)FindResource("MyEllipse");
如果您希望将资源用作多个控件的模板,请添加x:Shared="false"。
(Grid)myButton1.FindName("grid");
(在按钮处理程序中非常有用)。 - Naucle