wpf - 如何在保持字体大小的同时使用视图框调整 WPF 中按钮内容的大小?
问题描述
我正在创建一个应用程序,当用户最小化他们的屏幕时,我需要一个按钮的内容可以调整大小。我们知道视图框在 WPF 中是这样做的;这是自动调整文本大小的最简单方法。
这是按钮 [顶部] 的代码,我对格式表示歉意:
<Button Grid.Row="0"
Grid.Column="2"
Background="#3767B0"
Style="{DynamicResource IconStyle}"
BorderBrush="Transparent">
<Button.ContentTemplate>
<DataTemplate >
<Viewbox>
<TextBlock></TextBlock>
</Viewbox>
</DataTemplate>
</Button.ContentTemplate>
</Button>
我想从中得到的是:使用 WPF 中的 Viewbox 来调整此按钮的内容大小,同时保持内容的字体大小。
这会调整按钮内容的大小,但不会保留按钮的内容:
这是视图框的外观,并且应该正确调整大小:
通过维护,我的意思是我想使用视图框,而按钮的内容(它是视图框的子项)看起来与字体大小为 22 的完全相同。你可以看到我希望它看起来如何上图中按钮内容内的视图框。我试图尽可能清楚地说明这一点。也许我不明白视图框是如何工作的?
有人要求图标样式。这是图标样式代码:
<Style TargetType="Button"
x:Key="IconStyle"
BasedOn="{StaticResource ButtonStyle1}">
<Setter Property="FontFamily"
Value="Segoe MDL2 Assets" />
<Setter Property="Grid.RowSpan"
Value="2" />
<Setter Property="Padding"
Value="0,0,0,60" />
<Setter Property="Foreground"
Value="White" />
<Setter Property="FontSize"
Value="80" />
<Setter Property="Background"
Value="#307A85" />
<Setter Property="BorderBrush"
Value="Transparent" />
<Setter Property="BorderThickness"
Value="0" />
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect BlurRadius="15"
ShadowDepth="0"
Opacity="0.4"
Color="Black" />
</Setter.Value>
</Setter>
解决方案
如果我正确理解您需要实现的内容,请删除 ViewBox 并设置 TextBlock 的显式尺寸。我正在展示一个任意示例,但对于您的任务,您自己选择所需的尺寸和对齐方式。
<Button Background="#3767B0"
Style="{DynamicResource IconStyle}"
BorderBrush="Transparent">
<Button.ContentTemplate>
<DataTemplate >
<TextBlock Width="300"
Height="300"
FontSize="200"
Text=""/>
</DataTemplate>
</Button.ContentTemplate>
</Button>
推荐阅读
- react-native - 尝试访问此 ref 将失败。你的意思是使用 React.forwardRef() 吗?开玩笑的
- c - 如何在 perl 中有效地解析表达式 '^#[0-9A-F]{2}\$[0-9A-F]{4}/$'
- javascript - 异步等待不等待异步方法发生
- node.js - spotify-web-api-node 401 未经授权的错误
- ios - Swift:保存的凭据身份不会显示在快速输入栏中
- java - Android 获取工具栏问题
- vba - 如何更改用户表单中标签上显示的图片?
- for-loop - 何时在 python for 循环中使用 range 函数
- node.js - 使用 Multer 和 Express 将多个图像上传到 Cloudinary
- google-chrome - *.jpg 的 Chrome 扩展 manifest.json 通配符