C# 如何设置文本块';s字体大小是另一个字体大小属性的比率吗?
我在自定义用户控件中有一个TextBlock,我希望它比该用户控件的全局字体大小属性稍大(可能大7%)。我不确定做这件事的最佳方式。有人有什么建议吗 (显然,这一尝试是残暴的,但希望它有助于将我的要求形象化)C# 如何设置文本块';s字体大小是另一个字体大小属性的比率吗?,c#,wpf,xaml,C#,Wpf,Xaml,我在自定义用户控件中有一个TextBlock,我希望它比该用户控件的全局字体大小属性稍大(可能大7%)。我不确定做这件事的最佳方式。有人有什么建议吗 (显然,这一尝试是残暴的,但希望它有助于将我的要求形象化) 您好,自定义用户控件! 您可以使用library进行此操作。您可以使用library进行此操作。最佳答案(归功于@Kenny)是一个简单的转换器,它将用户控件字体大小作为输入 在xaml中使用: <z:RatioConverter x:Key="AdjustTitleFontSiz
您好,自定义用户控件!
您可以使用library进行此操作。您可以使用library进行此操作。最佳答案(归功于@Kenny)是一个简单的转换器,它将用户控件字体大小作为输入
在xaml中使用:
<z:RatioConverter x:Key="AdjustTitleFontSizeConverter" Ratio="1.07" />
<TextBlock
x:Name="Title"
FontSize="{Binding FontSize, Converter={StaticResource AdjustTitleFontSizeConverter}">
Hello Custom User Control!
</TextBlock>
最好的答案(归功于@Kenny)是一个简单的转换器,它将用户控制的字体大小作为输入
在xaml中使用:
<z:RatioConverter x:Key="AdjustTitleFontSizeConverter" Ratio="1.07" />
<TextBlock
x:Name="Title"
FontSize="{Binding FontSize, Converter={StaticResource AdjustTitleFontSizeConverter}">
Hello Custom User Control!
</TextBlock>
使用所需的比例因子应用
ScaleTransform
在本例中,所有TextBlock从父窗口继承FontSize=20(这是依赖项属性继承)。然后,我将一个文本块的FontSize更改为22,并缩放另一个文本块(20*1.1==22)。他们看起来很像我
<Window x:Class="WpfDemos.FontWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WpfDemos" Height="300" Width="300" FontSize="20">
<StackPanel>
<TextBlock Text="Hello Custom User Control!"/>
<TextBlock Text="Hello Custom User Control!"/>
<TextBlock Text="Hello Custom User Control!">
<TextBlock.LayoutTransform>
<ScaleTransform ScaleX="1.1" ScaleY="1.1"/>
</TextBlock.LayoutTransform>
</TextBlock>
<TextBlock Text="Hello Custom User Control!" FontSize="22"/>
<TextBlock Text="Hello Custom User Control!"/>
<TextBlock Text="Hello Custom User Control!"/>
</StackPanel>
</Window>
使用所需的比例因子应用
ScaleTransform
在本例中,所有TextBlock从父窗口继承FontSize=20(这是依赖项属性继承)。然后,我将一个文本块的FontSize更改为22,并缩放另一个文本块(20*1.1==22)。他们看起来很像我
<Window x:Class="WpfDemos.FontWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WpfDemos" Height="300" Width="300" FontSize="20">
<StackPanel>
<TextBlock Text="Hello Custom User Control!"/>
<TextBlock Text="Hello Custom User Control!"/>
<TextBlock Text="Hello Custom User Control!">
<TextBlock.LayoutTransform>
<ScaleTransform ScaleX="1.1" ScaleY="1.1"/>
</TextBlock.LayoutTransform>
</TextBlock>
<TextBlock Text="Hello Custom User Control!" FontSize="22"/>
<TextBlock Text="Hello Custom User Control!"/>
<TextBlock Text="Hello Custom User Control!"/>
</StackPanel>
</Window>
更改myUserControl.FontSize时,在其后面添加代码,然后更改此值。另一种方法是使用ValueConverter并将其作为参数绑定到该属性。@kenny我不确定在UserControl.FontSize发生更改时如何在代码隐藏中引用-我已查找要重写的OnFontSizeChanged方法,但找不到任何方法。在myUserControl.FontSize发生更改时添加代码可以更改此方法。另一种方法是使用ValueConverter,并将其作为参数绑定到该属性。@kenny我不确定在UserControl.FontSize发生更改时如何在代码中引用-我已查找要重写的OnFontSizeChanged方法,但找不到任何方法。您能提供一个如何使用的示例吗?此外,我更希望不必使用整个外部库来解决这样一个小问题。Wpf在开箱即用的绑定中没有提供这样的灵活性。然而,您可以使用代码隐藏来实现相同的功能,但我个人避免使用代码隐藏来进行绑定更改。您能提供一个如何使用的示例吗?此外,我更希望不必使用整个外部库来解决这样一个小问题。Wpf在开箱即用的绑定中没有提供这样的灵活性。不过,您可以使用代码隐藏来实现相同的功能,但我个人避免使用代码隐藏来进行绑定更改。