2017-10-25 4 views
-1

ich eine benutzerdefinierte Suche-Button in XAML erstellt haben, die wie unten definiert ist:XAML erstellen Schaltfläche Vorlage

<Button Margin="10,30,10,10" Height="100" Grid.Column="1" Command="{Binding HelpCommand}"> 
       <Button.Template> 
        <ControlTemplate> 
         <Border x:Name="Overlay" CornerRadius="15" Background="#4F81BD"> 
          <TextBlock Foreground="Black" 
             Text="Help" 
             HorizontalAlignment="Center" 
             VerticalAlignment="Center" 
             FontSize="26"/> 
         </Border> 
         <ControlTemplate.Triggers> 
          <Trigger Property="IsEnabled" Value="false"> 
           <Setter TargetName="Overlay" Property="Background" Value="#FF008DCF"/> 
           <Setter TargetName="Overlay" Property="BorderBrush" Value="#FF1BB7FF"/> 
           <Setter TargetName="Overlay" Property="BorderThickness" Value="2"/> 
          </Trigger> 
          <Trigger Property="IsEnabled" Value="true"> 
           <Setter TargetName="Overlay" Property="BorderBrush" Value="Black"/> 
           <Setter TargetName="Overlay" Property="BorderThickness" Value="2"/> 
          </Trigger> 
          <Trigger Property="IsMouseOver" Value="true"> 
           <Setter TargetName="Overlay" Property="BorderThickness" Value="3"/> 
           <Setter TargetName="Overlay" Property="Background" Value="#FF44C3FF"/> 
          </Trigger> 
         </ControlTemplate.Triggers> 
        </ControlTemplate> 
       </Button.Template> 
      </Button> 

Wie ich mit einem Namen dieser Vorlage speichern möchten, und jedes Mal muss ich einen Knopf wie verwenden Sie hierzu einfach die Style Eigenschaft wie folgt:

Style="{StaticResource BackButtonStyle}" 

Wie kann ich das tun?

Antwort

0

Sie müssen es stylen und speichern Sie es in einer separaten. Xaml-Datei dann laden Sie es entweder für komplette App oder für jedes Steuerelement/Fenster, das es verwenden möchte.

Dies ist ein Beispiel, das ich gemacht habe Sie können es ändern und verwenden.

<Style x:Key="DefBtn" TargetType="{x:Type Button}"> 
    <Setter Property="Background" Value="#EBEBEB"/> 
    <Setter Property="BorderBrush" Value="#8C8C8C"/> 
    <Setter Property="BorderThickness" Value="1"/> 
    <Setter Property="Foreground" Value="Black"/> 
    <Setter Property="FontSize" Value="12"/> 
    <Setter Property="FontFamily" Value="Segoe UI regular"/> 
    <Setter Property="VerticalContentAlignment" Value="Center"/> 
    <Setter Property="HorizontalContentAlignment" Value="Center"/> 
    <Setter Property="Padding" Value="3,2"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="Button"> 
       <Border Name="border" 
        BorderThickness="{TemplateBinding BorderThickness}" 
        Padding="{TemplateBinding Padding}" 
        BorderBrush="{TemplateBinding BorderBrush}" 
        CornerRadius="1" 
        Background="{TemplateBinding Background}"> 
        <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
            VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> 
       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

Jetzt können Sie den Namen ändern und es als Ressource Wörterbuch zu Ihrem Projekt hinzufügen. Und wenn Sie es laden möchten, können Sie dies tun.

<Window.Resources> 
     <ResourceDictionary Source="pack://application:,,,/SomeName;component/NameOfYourXamlFile.xaml"/> 
</Window.Resources> 
0

Zuerst würden Sie Ihren Stil in einer Wörterbuchdatei deklarieren müssen

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 

    <Style x:Key="CompIconButton" TargetType="Button"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="Button"> 
       <!--Anything--> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</ResourceDictionary> 

Dann brauchen Sie dieses Wörterbuch der in der Anwendung Ressourcen erklären

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Generic_UI/Buttons_Resources.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

Und Sie werden schließlich in der Lage sein, um Ihren Knopfstil wie erwartet zu verwenden

<Button Click="Button_Click" Style="{StaticResource CompIconButton}"/> 
0

Assing die ControlTemplate ein x:Key und an Ihre App.xaml Datei verschieben:

<Application x:Class="WpfApplication1.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      StartupUri="MainWindow.xaml"> 
    <Application.Resources> 
     <ResourceDictionary> 
      <ControlTemplate x:Key="MyButtonTemplate"> 
       <Border x:Name="Overlay" CornerRadius="15" Background="#4F81BD"> 
        <TextBlock Foreground="Black" 
             Text="Help" 
             HorizontalAlignment="Center" 
             VerticalAlignment="Center" 
             FontSize="26"/> 
       </Border> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsEnabled" Value="false"> 
         <Setter TargetName="Overlay" Property="Background" Value="#FF008DCF"/> 
         <Setter TargetName="Overlay" Property="BorderBrush" Value="#FF1BB7FF"/> 
         <Setter TargetName="Overlay" Property="BorderThickness" Value="2"/> 
        </Trigger> 
        <Trigger Property="IsEnabled" Value="true"> 
         <Setter TargetName="Overlay" Property="BorderBrush" Value="Black"/> 
         <Setter TargetName="Overlay" Property="BorderThickness" Value="2"/> 
        </Trigger> 
        <Trigger Property="IsMouseOver" Value="true"> 
         <Setter TargetName="Overlay" Property="BorderThickness" Value="3"/> 
         <Setter TargetName="Overlay" Property="Background" Value="#FF44C3FF"/> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 

     </ResourceDictionary> 
    </Application.Resources> 
</Application> 

Anschließend können Sie während Ihrer gesamten Anwendung verweisen sie die Verwendung von x:Key:

<Button Template="{StaticResource MyButtonTemplate}" Margin="10,30,10,10" Height="100" Grid.Column="1" Command="{Binding HelpCommand}"> 

Sie können für eine das gleiche tun Style (anstelle von ControlTemplate).

Verwandte Themen