locked
Как в WinPhone 8 App сделать в run-time подмену стилей? RRS feed

  • Вопрос

  • Есть вот такойкусок страницы:
    <Grid x:Name="LayoutRoot" Style="{StaticResource SmsRootStyle}">
            <phone:Pivot Style="{StaticResource SmsPivotStyle}" HeaderTemplate="{StaticResource SmsEmptyPivotHeaderTemplate}">
                <phone:PivotItem Header="">
                    <!--<ScrollViewer>-->
                    <phone:LongListSelector x:Name="pageSelector" SelectionChanged="pageSelector_SelectionChanged" Height="730" VerticalAlignment="Bottom">
                        <phone:LongListSelector.ItemTemplate>
                            <DataTemplate>
                                <Grid x:Name="mainGrid">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="10"/>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition/>
                                    </Grid.ColumnDefinitions>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="Auto"/>
                                        <RowDefinition Height="20"/>
                                    </Grid.RowDefinitions>
                                    <Image Grid.Column="1" Width="80" Source="{Binding Icon}" VerticalAlignment="Center"/>
                                    <StackPanel Grid.Column="2" VerticalAlignment="Center">
                                        <TextBlock x:Name="LeftTextBlock" Text="{Binding Header}" Style="{StaticResource PhoneTextLargeStyle}"/>
                                        <TextBlock x:Name="RightTextBlock" Text="{Binding Description}" Style="{StaticResource PhoneTextSubtleStyle}"/>
    

    Сейчас все эти PhoneTextLargeStyle, PhoneTextSubtleStyle и пр. рисуют не то, что мне нужно. Но контроля у меня над ними нет. Что я могу - сделать свой XAML с их определением и их именами. Остается только как-то в ран-тайме подменить скрытые от меня определения этих стилей на мои, с такими же именами. Как это можно сделать?
    14 июня 2014 г. 19:51

Ответы

  • Оверрайднуть стиль с таким же именем не получится. 

    Вообще PhoneTextLargeStyle содержит 2 сеттера - размер текста (32) и шрифт.

    Так что Вам придется создавать новый стиль с другим именем и его использовать. В этом стиле Вы можеет разве что указать BasedOn и Ваш стиль подхватит значения размера текста и шрифт.


    18 июня 2014 г. 9:19