This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

ControlTemplate الفئة

Visual Studio 2010

تحدد البنية البصرية والسلوكية أوجه Controlالتي يمكن مشاركتها عبر عدة مثيلات عنصر تحكم.

مساحة الاسم:  System.Windows.Controls
التجميع:  PresentationFramework (في PresentationFramework.dll)
XMLNS لـ XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[DictionaryKeyPropertyAttribute("TargetType")]
[LocalizabilityAttribute(LocalizationCategory.None, Readability = Readability.Unreadable)]
public class ControlTemplate : FrameworkTemplate
<ControlTemplate>
  <VisualTreeRootNode>
VisualTreeNodeContents
  </VisualTreeRootNode>
</ControlTemplate>

قيم XAML

ControlTemplate

عنصر كائن ControlTemplateأو فئة. المشتقة

VisualTreeRootNode

واحدة XAMLعنصر كـ التابع الفوري من ControlTemplate(أو a derived clكـs). يجب أن تحتوي قوالب عقدة جذر مفرد. في ترتيب إلى إنشاء قالب مفيدة، العنصر الذي تم اختياره كما هو متوقع من VisualTreeRootNode إلى يعتمد طراز محتوى من نوعه، غالباً ما نموذج يعتمد على عناصر تابعة متعددة.

VisualTreeNodeContents

عنصر واحد أو أكثر وإكمالها في intended قالب. إذا كان العنصر الذي تم اختياره كـ من VisualTreeRootNode باعتماد فرع مفرد فقط، ثم يمكن فقط يكون هناك عنصر مفرد لتعريف كـ من VisualTreeNodeContents. هو أيضا ممكن (بالرغم من ذلك الشائع) لتوفير محتوى نصي إذا كان يعتمد المختار من VهوualTreeRootNode خاصية محتوى نص.

ControlTemplate يسمح لك بتحديد بنية مرئية عنصر تحكم. عنصر تحكم يمكن تعريف المؤلف الافتراضي ControlTemplateويمكن يمنع مؤلف تطبيق ControlTemplateلإعادة بناء بنية مرئية عنصر تحكم.

التحكم في templating هو واحدة من العديد من الميزات المقدمة من قبل WPFstyling وطراز templating. يوفر طراز styling و templating مع مثل مرونة كبيرة والذي بعدة حالات التي لا تحتاج إلى كتابة عناصر التحكم الخاصة بك. إذا كنت كاتب تطبيق الذي يريد إلى تغيير مرئيات لعنصر التحكم الخاص بك أو إلى استبدال ControlTemplateمن عنصر تحكم موجود، راجع styling و Templatingإلى pic الأمثلة وعنصر المناقشة بالتفصيل.

في حالة الكتابة الخاصة بك عنصر تحكم، راجع "إنشاء مخصص عنصر تحكم" في عنصر تحكم التأليف نظرة عامة.

ControlTemplate هو تهدف إلى أن وحدة تطبيق متكاملا التفاصيل التي هو invهوible للمستخدمين الخارجية والكائنات، بما في ذلك أنماط. الطريقة الوحيدة للتعامل مع المحتوى عنصر تحكم القالب من ضمن نفس عنصر تحكم القالب.

The following shows a Button Style that sets the ControlTemplate of a Button:


<Style TargetType="Button">
  <!--Set to true to not get any properties from the themes.-->
  <Setter Property="OverridesDefaultStyle" Value="True"/>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="Button">
        <Grid>
          <Ellipse Fill="{TemplateBinding Background}"/>
          <ContentPresenter HorizontalAlignment="Center"
                            VerticalAlignment="Center"/>
        </Grid>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>


متى يتم تطبيق ذلك، Buttonيظهر كـ Ellipse:

عينة ControlTemplate للزر

عند تعيين Templateخاصية Controlإلى جديد ControlTemplateكما في المثال أعلاه، يمكنك استبدال قالب بالكامل. ما هي Buttonتبدو مثل عندما كان في تركيز أو تم الضغط عليه ما يعتبر جزءا من المظهر الافتراضي زر التي كنت تقوم باستبدال. لذلك، استناداً إلى احتياجاتك، قد تحتاج إلى وضعه في تعريف الخاص بك ما بزر يجب أن يبدو عند ذلك هو مضغوطاً، وهكذا، كما في المثال التالي:


<Style TargetType="Button">
  <Setter Property="SnapsToDevicePixels" Value="true"/>
  <Setter Property="OverridesDefaultStyle" Value="true"/>
  <Setter Property="FocusVisualStyle" Value="{StaticResource ButtonFocusVisual}"/>
  <Setter Property="MinHeight" Value="23"/>
  <Setter Property="MinWidth" Value="75"/>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="Button">
        <Border 
          x:Name="Border"  
          CornerRadius="2" 
          BorderThickness="1"
          Background="{StaticResource NormalBrush}"
          BorderBrush="{StaticResource NormalBorderBrush}">
          <ContentPresenter 
            Margin="2"
            HorizontalAlignment="Center"
            VerticalAlignment="Center"
            RecognizesAccessKey="True"/>
        </Border>
        <ControlTemplate.Triggers>
          <Trigger Property="IsKeyboardFocused" Value="true">
            <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DefaultedBorderBrush}" />
          </Trigger>
          <Trigger Property="IsDefaulted" Value="true">
            <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DefaultedBorderBrush}" />
          </Trigger>
          <Trigger Property="IsMouseOver" Value="true">
            <Setter TargetName="Border" Property="Background" Value="{StaticResource DarkBrush}" />
          </Trigger>
          <Trigger Property="IsPressed" Value="true">
            <Setter TargetName="Border" Property="Background" Value="{StaticResource PressedBrush}" />
            <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource PressedBorderBrush}" />
          </Trigger>
          <Trigger Property="IsEnabled" Value="false">
            <Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledBackgroundBrush}" />
            <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DisabledBorderBrush}" />
            <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>


لاحظ أن هذا المثال يشير موارد التي لا تظهر هنا. لنموذج كامل، راجع Styling مع نموذج ControlTemplates. توفر هذه العينة أمثلة لقوالب التحكم للعديد من عناصر التحكم و هو أفضل طريقة للشروع في إنشاء قوالب عنصر التحكم.

يتم تأمين العملية الجزئية لأي عضو عمومي ثابت (مشترك في Visual Basic) من هذا النوع. لن يتم ضمان تأمين العملية الجزئية لأي عضو مثيل.

نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008, نظام التشغيل Windows Server 2003

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0

NET Framework. Client Profile

مدعوم في: 4
إظهار: