我的问题与Why doesn't style-setting of the window background work?几乎相同。该问题的答案是“您的样式定位Window
,但这不会应用于MainWindow
”。
就我而言,我有以下针对RowDefinition的样式。在我的xaml的其他地方,我有一个带有一些行和列定义的标准网格。 Application.Resources
中的目标与我的xaml RowDefinition
元素完全匹配,但样式似乎只适用于设计器,而不是在运行时。
我正在使用Update 4运行Visual Studio 2012,目标是.NET Framework 4.5。
的App.xaml:
<Application x:Class="MyProj.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Application.Resources>
<Style TargetType="RowDefinition">
<Setter Property="Height" Value="35" />
</Style>
</Application.Resources>
</Application>
DriverEdit.xaml:
<Window x:Class="MyProj.Windows.DriverEdit"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:p="clr-namespace:MyProj.Properties"
xmlns:Controls="clr-namespace:MyProj.Controls"
WindowStartupLocation="CenterOwner"
Title="{Binding Path=SelectedItem.UniqueName, TargetNullValue='New'}" Height="300" Width="300">
<DockPanel>
<StackPanel DockPanel.Dock="Right">
<Controls:CommonEditButtons />
</StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0" Text="{x:Static p:Resources.CommonEditID}" />
<TextBlock Grid.Column="0" Grid.Row="1" Text="{x:Static p:Resources.CommonEditName}" />
<TextBox Grid.Column="1" Grid.Row="0" Text="{Binding Path=SelectedItem.Id}" />
<TextBox Grid.Column="1" Grid.Row="1" Text="{Binding Path=SelectedItem.Name}" />
</Grid>
</DockPanel>
</Window>
编辑提供更多XAML。