У меня есть TabControl, который привязан к ViewModel. Я хочу, чтобы установить запас автогенерируемая TabPanel, но я не могу сделать это, потому что я считаю, что стиль установлен рядный с помощью реализации TabControl в ...Как переопределить встроенный стиль в xaml
Вот мой стиль ...
<TabControl.Resources>
<Style TargetType="{x:Type TabPanel}">
<Setter Property="Margin" Value="14,0,0,0" />
</Style>
</TabControl.Resources>
и полученный стиль с помощью Visual Studio поживет собственность Исследователь, как это ...
UPDATE 1:
Вот XAML
для ItemTemplate, который генерирует сам TabPanel
:
<TabControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition MaxWidth="150" />
</Grid.ColumnDefinitions>
<Image Grid.Row="0" Grid.Column="0" Source="{Binding ImageUri}"
Height="25" Width="35" Margin="0,0,0,10" />
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding TestName}" TextAlignment="Center"
TextWrapping="Wrap" FontFamily="Open Sans" FontWeight="Regular" FontSize="14" />
</Grid>
</DataTemplate>
</TabControl.ItemTemplate>
Спасибо за ваш ответ. Он решил мою проблему с небольшими трюками, но для этого не существует более короткого решения? Как '! Important' в CSS. Думаю, должен быть один. –
@NaveedButt AFAIK, стили WPF отличаются от стилей CSS. Они не каскадируют, поэтому к элементу сразу применяется только ** один ** стиль, и он не должен иметь противоречивых атрибутов. ! important в css используется в соединении с каскадом, чтобы дать максимальный вес при возникновении конфликтов. Тем не менее у вас может быть проблема ** [приоритет] (https://msdn.microsoft.com/en-us/library/ms743230.aspx) **, как и у вас, и wpf просто следуют правилам, описанным в ссылка. Btw, ** [здесь] (http://stackoverflow.com/q/16008484/5246145) ** - аналогичный вопрос, но я не думаю, что tecnique лучше – 3615