在UWP App中,使用DependencyProperty,TextBlock的FontSize和FontStyle发生了变化,但FontFamily没有发生变化

问题描述 投票:0回答:1

使用 UWP 我想打印包含 TextBlock 的报告。根据首选项,我想更改 TextBlock FontSize、FontStyle 和 FontFamily,但 DependencyProperty 仅更改 FontSize 和 FontStyle,而 FontFamily 不会更改。请帮帮我。

<vm:MainViewModel x:Name="mainViewModel" />

 <Paragraph>

     <InlineUIContainer>

         <ItemsControl ItemsSource="{Binding PrintArterialVelocities}"

                HorizontalAlignment="Stretch"

                VerticalAlignment="Stretch"

                Margin="0">

             <ItemsControl.ItemTemplate>

                 <DataTemplate>

                     <Grid>

                         <Grid.RowDefinitions>

                             <RowDefinition Height="Auto"/>

                         </Grid.RowDefinitions>

                         <Grid.ColumnDefinitions>

                             <ColumnDefinition Width="2"/>

                             <ColumnDefinition Width="175"/>

                             <ColumnDefinition Width="80"/>

                             <ColumnDefinition Width="173"/>

                             <ColumnDefinition Width="175"/>

                             <ColumnDefinition Width="80"/>

                         </Grid.ColumnDefinitions>

                         <Border BorderBrush="Black" BorderThickness="0,0,0,1" Grid.Column="1" Grid.ColumnSpan="2"/>

                         <Border BorderBrush="Black" BorderThickness="0,0,0,1" Grid.Column="4" Grid.ColumnSpan="2"/>

                         <TextBlock Grid.Column="1" local:VelocitiesText.Text="{Binding ArteryName}"/>

                         <TextBlock Grid.Column="2" local:VelocitiesText.Text="{Binding ArteryVelocity}"/>

                         <TextBlock Grid.Column="4" local:VelocitiesText.Text="{Binding ArteryName}"/>

                         <TextBlock Grid.Column="5" local:VelocitiesText.Text="{Binding ArteryVelocity}"/>

                     </Grid>

                 </DataTemplate>

             </ItemsControl.ItemTemplate>

         </ItemsControl>

     </InlineUIContainer>

 </Paragraph>

回调类

公共课 VelocitiesText

{

 public static string GetText(DependencyObject obj)

 {

     return (string)obj.GetValue(TextBlock.TextProperty);

 }

 public static void SetText(DependencyObject obj, string value)

 {

     obj.SetValue(TextBlock.TextProperty, value);

 }



 public static readonly DependencyProperty TextProperty =

     DependencyProperty.RegisterAttached("Text", typeof(string), typeof(VelocitiesText), new PropertyMetadata(string.Empty, callback));

 public static void callback(DependencyObject d, DependencyPropertyChangedEventArgs e)

 {

     var Txt = (TextBlock)d;

     var InsertString = (string)e.NewValue;            

     Txt.Text = InsertString;

 // Txt.FontFamily= new Windows.UI.Xaml.Media.FontFamily(TextCalls.SelectedFontFamilyName);

     Txt.FontFamily= TextCalls.SelectedFontFamily;

     Txt.FontSize = double.Parse(TextCalls.SelectedFontSize);

     if (TextCalls.SelectedFontStyle == "Italic")

         Txt.FontStyle = Windows.UI.Text.FontStyle.Italic;          

 }

}

uwp dependency-properties
1个回答
0
投票

建议检查

TextCalls.SelectedFontFamily
是否正确。您还可以设置固定值(如
Txt.FontFamily = new FontFamily("Segoe UI"
);

© www.soinside.com 2019 - 2024. All rights reserved.