我有一个 WPF 应用程序。我正在使用 .NET 6。
我的
RibbonButton
控件中需要有两行文本。
这就是我目前正在做的事情:
<RibbonButton x:Name="rbName"
LargeImageSource="../Resources/broom-3w.png"
ToolTip="{Binding RibBtnToolTip}"
Command="{Binding RibBtnCommand}"
Label ="{Binding LblContent}">
</RibbonButton>
这会显示文本,但它的格式对我来说不正确。 文本会中断,但它在所有
RibbonButton
中并不一致,即它并不总是在我需要的地方中断。
文本也居中对齐。
我试过把' ' 在标签字符串中,但在 ' 之后不会显示任何文本 '.
我尝试添加一个
StackPanel
和两个TextBlock
。
这样做不会出现编译错误,但是根本不显示任何文本,只显示图像。
<RibbonButton x:Name="rbName"
LargeImageSource="../Image.png"
ToolTip="{Binding RibBtnToolTip}"
Command="{Binding RibBtnCommand}">
<RibbonButton.Content>
<StackPanel>
<TextBlock Text="{Binding Lbl1}"/>
<TextBlock Text="{Binding Lbl2}"/>
</StackPanel>
</RibbonButton.Content>
</RibbonButton>
RibbonButton
控件使用RibbonTwoLineText来显示文本。该属性的 HorizontalAlignment
属性在默认模板中设置(硬编码)为 Center
。要更改它,您可以定义自己的自定义模板或在运行时动态设置属性。您可能还想减少默认设置为 LineHeight
的 13
属性:
private void rbName_Loaded(object sender, RoutedEventArgs e)
{
RibbonButton btn = (RibbonButton)sender;
RibbonTwoLineText text = btn.Template.FindName("TwoLineText", btn) as RibbonTwoLineText;
if (text != null)
{
text.HorizontalAlignment = HorizontalAlignment.Left;
text.LineHeight = 8;
}
}
XAML:
<RibbonButton x:Name="rbName" Loaded="rbName_Loaded" LargeImageSource="..." />
默认情况下,
LargeImageSource
的大小为 32x32,RibbonButton
控件的总高度为 66。