WPF-window style nicht angewendet werden,
Habe ich ein ResourceDictionary enthält Definitionen für Steuerelemente verwendet, die in meiner Anwendung.
Alle Stile sind, korrekt angewendet, um die Steuerelemente in das Fenster...aber der Stil, in dem ResourceDictionary für das Fenster selbst wird nicht angewendet.
Dies ist der XAML-Code in meine ResourceDictionary enthält der Stil, den ich anwenden möchte, um meine Fenster:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:primatives="clr-namespace:System.Windows.Controls.Primitives;assembly=PresentationFramework"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="{x:Type Window}">
<Setter Property="Background" Value="#FF121212"></Setter>
<Setter Property="Height" Value="768"></Setter>
<Setter Property="Width" Value="1024"></Setter>
</Style>
<!-- .... -->
</ResourceDictionary>
Dies ist der XAML-Code für das Fenster, ich arbeite mit (versucht, um diesen Stil zu übernehmen):
<Window x:Class="TryingStyles"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="TryingStyles">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/StylesDictionary.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<StackPanel>
<StackPanel Orientation="Horizontal">
<Label Content="Label" Height="28" HorizontalAlignment="Left" Margin="12,12,0,0" Name="Label1" VerticalAlignment="Top" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="56,14,0,0" Name="TextBox1" VerticalAlignment="Top" Width="120" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TabControl Height="206" HorizontalAlignment="Left" Margin="12,43,0,0" Name="TabControl1" VerticalAlignment="Top" Width="250">
<TabItem Header="TabItem1" Name="TabItem1">
<Grid></Grid>
</TabItem>
</TabControl>
<GroupBox Header="GroupBox1" Margin="268,43,12,12" Width="396"></GroupBox>
</StackPanel>
</StackPanel>
</Window>
Scheint es, dass Sie den Stil der Fenster angewendet wird, wenn ich das Fenster in der IDE die "Design-Ansicht", aber wenn ich die Anwendung ausführen der style nicht angewendet.
Weiß jemand, was ich falsch mache?
InformationsquelleAutor Frinavale | 2010-11-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint es, dass es keine richtige Lösung zu deinem problem. TargetType im Stile schafft es nicht abgeleiteten Typen.
Hier sind zwei alternativen :
Sie können setzen Sie einen Schlüssel in Ihrem Stil und wendet den Stil auf alle Ihre Windows.
Oder verwenden Sie die BasedOn-Eigenschaft des Style.
Sie sollten auch prüfen, diese Lösung: stackoverflow.com/questions/431940/...
InformationsquelleAutor Nicolas
Es ist sehr merkwürdig, dass es funktioniert mit dem designer, aber nicht, wenn die Anwendung ausgeführt wird.
Das problem scheint zu sein, den TargetType von Ihrem Stil. Wpf scheint nicht in der Lage, mit der Window-Klasse mit Ihrem abgeleitete Klasse TryingStyles.
Ändern Sie Ihre TargetType und es wird funktionieren :
InformationsquelleAutor Nicolas