У меня есть следующие UserControl в 8.1 проекта Windows Phone:Styling Windows Phone 8,1 UserControl
<UserControl
x:Name="AuditItem"
x:Class="WindowsPhone.OverviewAuditItem"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:WindowsPhone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Height="Auto"
Tapped="AuditItem_Tapped"
Style="{StaticResource MyUserControlStyle}">
<Grid x:Name="contentGrid">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Height="160" >
<TextBlock x:Name="textAuditName" Margin="10,10,0,0" TextWrapping="Wrap" Text="Audit Name" VerticalAlignment="Top"/>
<TextBlock x:Name="textCreatedDate" HorizontalAlignment="Left" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Center"/>
<TextBlock x:Name="textLastOpened" HorizontalAlignment="Left" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Center" />
<!--<Button Content="This styling works but the UC style doesn't"
Height="100"
Style="{StaticResource MyButtonStyle}" />-->
<StackPanel Orientation="Horizontal" Grid.Column="2">
<TextBlock x:Name="textDeadline" HorizontalAlignment="Left" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Center" Grid.Column="2"/>
<Grid x:Name="blockOverdue" Margin="10,0,0,0">
<Image Source="PNGs/alerticon.png" Stretch="None" HorizontalAlignment="Center" />
</Grid>
</StackPanel>
<TextBlock x:Name="textTemplate" HorizontalAlignment="Left" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Center" Grid.Column="3"/>
</StackPanel>
</Grid>
Я определил свой стиль в файле App.xaml:
<Style TargetType="local:OverviewAuditItem" x:Key="MyUserControlStyle" >
<Setter Property="Background" Value="Blue" />
<Setter Property="FontFamily" Value="Arial Black" />
<Setter Property="FontSize" Value="36" />
</Style>
Я знаю, что стиль «найден», потому что я не получаю ошибку «Ресурс не может быть разрешен» (что я получаю, если меняю имя для теста)
Ни один из стилей не применяется. Я ожидал, что фон UserControl будет синим и все текстовые блоки в элементе управления будут использовать размер текста и семью. Я довольно новичок в этом, поэтому, возможно, он не работает так.
Мои вопросы: Должен ли он работать, как я предполагаю? если да, то где я ошибаюсь, если нет, то как мне применить стилирование к UserControl?
В качестве теста - вы можете видеть, что у меня есть кнопка с комментариями, стиль для этого действительно работает.
Ах ОК - я не пробовал, но никаких изменений, поэтому я подумал, Сетки на UserControl скрывался синий фон. Когда я добавил стиль в сетку и изменил TargetType на Grid, у него был синий фон. – Rick
Я думал, что вы можете создать «стиль» с набором «правил» для разных типов - очевидно, нет. Спасибо за вашу помощь. – Rick
@ Рик да Сетка скроет фон 'UserControls'. Если это правильный ответ, можете ли вы его пометить. благодаря – user1