İzlenecek yol: biçim WPF içeriği

bu makalede, bir Windows formunda barındırılan bir Windows Presentation Foundation (WPF) denetimine stil uygulamayı nasıl uygulayacağınız gösterilmektedir.

Önkoşullar

bu yönergeyi tamamlamak için Visual Studio gerekir.

Proje oluşturma

Visual Studio açın ve Visual Basic ya da Visual C# adında yeni bir Windows Forms uygulama projesi oluşturun StylingWpfContent .

Not

WPF içeriğini barındırırken yalnızca C# ve Visual Basic projeleri desteklenir.

WPF denetim türlerini oluşturma

Projeye bir WPF denetim türü ekledikten sonra, bunu bir denetimde barındırabilirsiniz ElementHost .

  1. Çözüme yeni bir WPF UserControl projesi ekleyin. Denetim türü için varsayılan adı kullanın, UserControl1.xaml . daha fazla bilgi için bkz. izlenecek yol: tasarım zamanında Windows Forms yeni WPF içeriği oluşturma.

  2. Tasarım görünümü ' de, ' nin seçili olduğundan emin olun UserControl1 .

  3. Özellikler penceresinde, ve Height özelliklerinin değerini Heightolarak ayarlayın.

  4. Öğesine bir System.Windows.Controls.Button denetim ekleyin UserControl ve Content özelliğin değerini System.Windows.Controls.Buttonolarak ayarlayın.

  5. Öğesine ikinci bir System.Windows.Controls.Button denetim ekleyin UserControl ve Content özelliğinin değerini System.Windows.Controls.Buttonolarak ayarlayın.

  6. Projeyi derleyin.

WPF denetimine stil uygulama

Görünümünü ve davranışını değiştirmek için WPF denetimine farklı stil uygulayabilirsiniz.

  1. Form1Windows Form Tasarımcısı açın.

  2. Araç kutusunda, form üzerinde bir örnek oluşturmak için çift tıklayın UserControl1 .

    Bir örneği UserControl1 adlı yeni bir ElementHost denetimde barındırılır elementHost1 .

  3. İçin akıllı etiket panelinde elementHost1 , açılan listeden elementHost1 ' ye tıklayın.

    UserControl1 WPF Tasarımcısı 'nda açılır.

  4. XAML görünümünde, açılış etiketinden sonra aşağıdaki XAML 'yi ekleyin <UserControl> . Bu XAML, çakışan gradyan kenarlığı olan bir gradyan oluşturur. Denetime tıklandığında degradeler, basılan düğme görünümü oluşturacak şekilde değiştirilir. Daha fazla bilgi için bkz. Stil oluşturma ve şablonoluşturma.

    <UserControl.Resources>
     <LinearGradientBrush x:Key="NormalBrush" EndPoint="0,1" StartPoint="0,0">
         <GradientStop Color="#FFF" Offset="0.0"/>
         <GradientStop Color="#CCC" Offset="1.0"/>
     </LinearGradientBrush>
     <LinearGradientBrush x:Key="PressedBrush" EndPoint="0,1" StartPoint="0,0">
         <GradientStop Color="#BBB" Offset="0.0"/>
         <GradientStop Color="#EEE" Offset="0.1"/>
         <GradientStop Color="#EEE" Offset="0.9"/>
         <GradientStop Color="#FFF" Offset="1.0"/>
     </LinearGradientBrush>
     <LinearGradientBrush x:Key="NormalBorderBrush" EndPoint="0,1" StartPoint="0,0">
         <GradientStop Color="#CCC" Offset="0.0"/>
         <GradientStop Color="#444" Offset="1.0"/>
     </LinearGradientBrush>
     <LinearGradientBrush x:Key="BorderBrush" EndPoint="0,1" StartPoint="0,0">
         <GradientStop Color="#CCC" Offset="0.0"/>
         <GradientStop Color="#444" Offset="1.0"/>
     </LinearGradientBrush>
     <LinearGradientBrush x:Key="PressedBorderBrush" EndPoint="0,1" StartPoint="0,0">
         <GradientStop Color="#444" Offset="0.0"/>
         <GradientStop Color="#888" Offset="1.0"/>
     </LinearGradientBrush>
    
     <Style x:Key="SimpleButton" TargetType="{x:Type Button}" BasedOn="{x:Null}">
         <Setter Property="Background" Value="{StaticResource NormalBrush}"/>
         <Setter Property="BorderBrush" Value="{StaticResource NormalBorderBrush}"/>
         <Setter Property="Template">
             <Setter.Value>
                 <ControlTemplate TargetType="{x:Type Button}">
                     <Grid x:Name="Grid">
                         <Border x:Name="Border" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}"/>
                         <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True"/>
                     </Grid>
                     <ControlTemplate.Triggers>
                         <Trigger Property="IsPressed" Value="true">
                             <Setter Property="Background" Value="{StaticResource PressedBrush}" TargetName="Border"/>
                             <Setter Property="BorderBrush" Value="{StaticResource PressedBorderBrush}" TargetName="Border"/>
                         </Trigger>
                     </ControlTemplate.Triggers>
                 </ControlTemplate>
             </Setter.Value>
         </Setter>
     </Style>
    </UserControl.Resources>
    
  5. SimpleButtonAŞAĞıDAKI xaml 'Yi <Button>SimpleButton düğmesinin etiketine ekleyerek, önceki adımda tanımlanan stili iptal düğmesine uygulayın.

    Style="{StaticResource SimpleButton}
    

    Düğme bildirimidir aşağıdaki XAML 'ye benzeyecektir:

    <Button Height="23" Margin="41,52,98,0" Name="button1" VerticalAlignment="Top"
                 Style="{StaticResource SimpleButton}">Cancel</Button>
    
  6. Projeyi derleyin.

  7. Form1Windows Form Tasarımcısı açın.

  8. Yeni stil düğme denetimine uygulanır.

  9. Hata Ayıkla menüsünde, hata ayıklamayı Başlat ' ı seçerek uygulamayı çalıştırın.

  10. Tamam ve iptal düğmelerini tıklatın ve farkları görüntüleyin.

Ayrıca bkz.