2017-09-01 1 views
0
<ResourceDictionary 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/interactivedesigner/2006" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     mc:Ignorable="d"> 

     <Style TargetType="{x:Type TabControl}"> 
      <Setter Property="Margin" Value="0,5" /> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type TabControl}"> 
         <Grid> 
          <Grid.RowDefinitions> 
           <RowDefinition Height="Auto" /> 
           <RowDefinition Height="*" /> 
          </Grid.RowDefinitions> 
          <Grid Grid.Row="0"> 
           <Button Style="{StaticResource Button}"/> 
           <Button /> 
          </Grid> 
         </Grid> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

     <Style TargetType="{x:Type TabItem}"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="TabItem"> 
         <Grid Name="xGrid"> 
          <Border> 
           <ContentPresenter/> 
          </Border> 
         </Grid> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

     <Style x:Key="Button" TargetType="{x:Type Button}"> 
      <Setter Property="Background" Value="#FF000000" /> 
     </Style> 
</ResourceDictionary> 

Ich versuche, einen Stil auf die Schaltfläche hinzufügen, aber wenn ich es (<Button Grid.Column="0" Style="{StaticResource Button}"/>) in dem Projekt ein, mein Projekt läuft nicht, und VS zeige mir nicht, eine Ausnahme.hinzufügen Stil der Schaltfläche

Meine Stile werden in einer separaten Datei gespeichert.

Warum kann ich der Schaltfläche keinen Stil hinzufügen? Und welche Ausnahme zeigt VS mir nicht?

Ich werde jede Hilfe annehmen.

Danke.

p.s. Sorry für den Fehler, falls vorhanden.

EDIT # 1:

App.xaml:

<Application x:Class="WpfApp1.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:local="clr-namespace:WpfApp1" 
      StartupUri="View\MainWindow.xaml"> 
    <Application.Resources> 
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source="Styles.xaml"/> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
    </Application.Resources> 
</Application> 

EDIT # 2:

MainWindow.xaml:

<Window 
    x:Class="WpfApp1.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:local="clr-namespace:WpfApp1" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    Title="MainWindow" 
    Width="525" 
    Height="350" 
    AllowsTransparency="True" 
    Background="Transparent" 
    WindowStyle="None" 
    mc:Ignorable="d"> 

      <Grid> 
       <TabControl> 
        <TabItem Header="jhb"> 
         <Grid> 
          <Grid.RowDefinitions> 
           <RowDefinition Height="Auto" /> 
           <RowDefinition Height="*" /> 
           <RowDefinition Height="Auto" /> 
          </Grid.RowDefinitions> 
         </Grid> 
        </TabItem> 
        <TabItem Header="TabItem" /> 
        <TabItem Header="TabItem" /> 
        <TabItem Header="TabItem" /> 
        <TabItem Header="TabItem" /> 
        <TabItem Header="TabItem" /> 
        <TabItem Header="TabItem" /> 
        <TabItem Header="TabItem" /> 
        <TabItem Header="TabItem" /> 
        <TabItem Header="TabItem" /> 
        <TabItem Header="TabItem" /> 
       </TabControl> 
      </Grid> 
    </Window> 

Antwort

0

Haben Sie fusionieren Ihre ResourceDictionary in Ihre App.xaml?

<Application x:Class="WpfApplication1.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:local="clr-namespace:WpfApplication1" 
      StartupUri="MainWindow.xaml"> 
    <Application.Resources> 
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source="Dictionary1.xaml" /> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
    </Application.Resources> 
</Application> 

ersetzen Dictionary1.xaml mit dem tatsächlichen Namen Ihrer ResourceDictionary Datei.

+0

Nur zur weiteren Klärung des 'ResourceDictionary' (oder irgendwo anders in dem Dokument oder ein Dokument verknüpft) für den Wert sein soll, die Bereitstellung (n) den' StaticResource' key: 'Button' - https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/staticresource-markup-extension –

+0

Hier ist alles in Ordnung. Die Situation ist, dass ohne einen Stil alles funktioniert, aber wenn ich den Stil der Schaltfläche hinzufügen, funktioniert das Projekt nicht. – Kirill

+0

Also, wo ist Ihr ResourceDictionary zusammengeführt und wo befindet sich Ihr Button? – mm8

Verwandte Themen