كيفية القيام بما يلي: البحث عن العناصر المنشأة ل ControlTemplate
يوضح هذا المثال كيفية البحث عن العناصر التي تم إنشاؤها بواسطة ControlTemplate.
مثال
يظهر المثال التالي النمط الذي ينشئ ControlTemplateبسيط للحصول Button الفئة:
<Style TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid Margin="5" Name="grid">
<Ellipse Stroke="DarkBlue" StrokeThickness="2">
<Ellipse.Fill>
<RadialGradientBrush Center="0.3,0.2" RadiusX="0.5" RadiusY="0.5">
<GradientStop Color="Azure" Offset="0.1" />
<GradientStop Color="CornflowerBlue" Offset="1.1" />
</RadialGradientBrush>
</Ellipse.Fill>
</Ellipse>
<ContentPresenter Name="content" Margin="10"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
للبحث عن عنصر ضمن قالب بعد تطبيق القالب يمكنك استدعاء FindName أسلوب Template. يقوم المثال التالي بإنشاء مربع رسالة الذي يعرض قيمة العرض الفعلي ل Grid ضمن قالب عنصر التحكم:
' Finding the grid that is generated by the ControlTemplate of the Button
Dim gridInTemplate As Grid = CType(myButton1.Template.FindName("grid", myButton1), Grid)
' Do something to the ControlTemplate-generated grid
MessageBox.Show("The actual width of the grid in the ControlTemplate: " & gridInTemplate.GetValue(Grid.ActualWidthProperty).ToString())
// Finding the grid that is generated by the ControlTemplate of the Button
Grid gridInTemplate = (Grid)myButton1.Template.FindName("grid", myButton1);
// Do something to the ControlTemplate-generated grid
MessageBox.Show("The actual width of the grid in the ControlTemplate: "
+ gridInTemplate.GetValue(Grid.ActualWidthProperty).ToString());
راجع أيضًا:
المهام
كيفية القيام بما يلي: البحث عن عناصر منشأة من DataTemplate