【问题标题】:Unable to change FontSize of ListPicker FullModeItemTemplate无法更改 ListPicker FullModeItemTemplate 的 FontSize
【发布时间】:2013-03-11 09:12:55
【问题描述】:

我有一个 ListPicker,当我点击它时,我会弹出全屏窗口,但是那里的选项都很小,而且无论出于何种原因,我都无法更改 FontSize。

代码:

<phone:PhoneApplicationPage.Resources>
    <DataTemplate x:Name="PickerFullItemTemplate">
        <StackPanel>
            <TextBlock Text="{Binding Number}"/>
        </StackPanel>
    </DataTemplate>
</phone:PhoneApplicationPage.Resources>


<toolkit:ListPicker ExpansionMode="FullScreenOnly" Name="Picker" ItemsSource="{Binding Number, ElementName=this}" FullModeItemTemplate="{Binding PickerFullItemTemplate}" />

如何使全屏弹出窗口大小为 36 字体的文本?

编辑: 我应该提到,如果我在模板中设置字体大小(如下所示)它不起作用。我可以在列表选择器上设置字体大小,但显然这不会改变完整模式弹出窗口。 此外,我已将 ListPicker 从 Pivot 中取出,并尽可能多地注释掉它,因此没有什么可能覆盖此设置,但仍然没有。

【问题讨论】:

    标签: xml xaml windows-phone-8 windows-phone


    【解决方案1】:

    执行以下操作:

    1) 使用您的值列表创建一个类

    public class Number
    {
        public IEnumerable<string> number { get { return "AA1,AA2,AA3".Split(','); } }
    }
    

    2) 在 xaml 文件顶部声明项目的命名空间

    xmlns:local="clr-namespace:YourAppNameSpaceGoesHere"
    

    3) 在 PhoneApplicationPage 资源部分中将您的类声明为资源

    4) 在您的 DataTemplate TextBlock 中,只需将 Text 值定义为“{Binding}”并设置您的 FontSize

    <phone:PhoneApplicationPage.Resources>
        <local:Number x:Key="Number"/>
        <DataTemplate x:Name="PickerFullItemTemplate">
            <StackPanel>
                <TextBlock Text="{Binding}" FontSize="36"/>
            </StackPanel>
        </DataTemplate>
    </phone:PhoneApplicationPage.Resources>
    

    5) 包装您的 ListPicker 控件是一个类似于 Grid 的容器控件,并将 Grid 的 DataContext 设置为您的类

    6) ListPicker 中的 FullModeItemTemplate 应定义为 StaticResource

        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0" DataContext="{StaticResource Number}">
            <toolkit:ListPicker ExpansionMode="FullScreenOnly" Name="Picker" ItemsSource="{Binding number}" FullModeItemTemplate="{StaticResource PickerFullItemTemplate}" />
        </Grid>
    

    【讨论】:

    • 谢谢,这对我也有帮助
    【解决方案2】:

    以下应该可以工作。

    <DataTemplate x:Name="PickerFullItemTemplate">
        <StackPanel>
            <TextBlock Text="{Binding Number}" FontSize="36"/>
        </StackPanel>
    </DataTemplate>
    

    【讨论】:

    • 对不起,我以为我提到我已经尝试过了,这就是问题所在。如果我在模板中设置字体大小,它将不起作用。我可以在列表选择器上设置字体大小,但显然这不会改变完整模式弹出窗口。
    【解决方案3】:

    怎么样:

    <Style x:Key="LPickFullModeTxtBlock" TargetType="TextBlock">
         <Setter Property="FontSize" Value="30"/>
    </Style>
    
    <toolkit:ListPicker.FullModeItemTemplate>
         <DataTemplate>
             <TextBlock Text="{Binding bindProp}" VerticalAlignment="Top" HorizontalAlignment="Left" Style="{StaticResource LPickFullModeTxtBlock}"></TextBlock>
         </DataTemplate>
    </toolkit:ListPicker.FullModeItemTemplate>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      • 2020-12-01
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多