كيفية القيام بما يلي: البحث عن العناصر المنشأة ل 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

المبادئ

التنسيق و القولبة

WPF XAML Namescopes

الأشجار فى الWPF