WPF RibbonButton 多行文本

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

我有一个 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>
wpf xaml ribbon-button
1个回答
0
投票

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。

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