使用控制模板将标签添加到功能区按钮

本文关键字:添加 功能区 按钮 标签 控制 | 更新日期: 2023-09-27 18:29:15

我已经为本文末尾显示的Ribbon按钮创建了一个ControlTemplate。

它显示得很好,但我希望它有一个像标准按钮一样的标签。当我使用控制模板添加按钮并添加Label="blah"时,没有显示任何内容——我需要编辑我的控制模板吗?

还有没有一种方法可以改变功能区按钮在功能区上的大小,因为它看起来有点小?

标准按钮

<RibbonButton Label="Recalculate Values" 
                              Command="{Binding CommandButtCalcHlds}" 
                              IsEnabled="{Binding ButtHome}"
                              LargeImageSource="MyPath'Calculate1.jpg"/>

带有我的控制模板的按钮

<RibbonButton Command="{Binding CommandButtHldChk}" 
                              IsEnabled="{Binding ButtExportToExcel}"
                              Template="{StaticResource buttRibbonCheck}"/>

我的控制模板

<ControlTemplate x:Key="buttRibbonCheck" TargetType="{x:Type RibbonButton}">
        <Grid Height="60" Width="60">
            <Ellipse Name="outerCircle" >
                <Ellipse.Fill>
                    <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                        <GradientStop Offset="0" Color="Blue"/>
                        <GradientStop Offset="1" Color="Red"/>
                    </LinearGradientBrush>
                </Ellipse.Fill>
            </Ellipse>
            <Ellipse Margin="5">
                <Ellipse.Fill>
                    <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                        <GradientStop Offset="0" Color="White"/>
                        <GradientStop Offset="1" Color="Transparent"/>
                    </LinearGradientBrush>
                </Ellipse.Fill>
            </Ellipse>
            <TextBlock Text="Check" FontWeight="Bold" FontSize="18" Padding="2" LineHeight="20" 
                       HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Black"/>
        </Grid>
        <ControlTemplate.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter TargetName="outerCircle" Property="Fill" Value="Purple"/>
            </Trigger>
            <Trigger Property="IsPressed" Value="True">
                <Setter Property="RenderTransform">
                    <Setter.Value>
                        <ScaleTransform ScaleX=".9" ScaleY=".9"/>
                    </Setter.Value>
                </Setter>
                <Setter Property="RenderTransformOrigin" Value=".5,.5"/>
            </Trigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>

使用控制模板将标签添加到功能区按钮

设置功能区按钮的边距

<RibbonTab Header="Insert">
                    <RibbonButton Command="{Binding CommandButtHldChk}" VerticalAlignment="Top" Margin="0,-50,0,0"
                              IsEnabled="{Binding ButtExportToExcel}"
                              Template="{StaticResource buttRibbonCheck}" />
</RibbonTab>

或使用

<RibbonGroup>
                    <RibbonButton Command="{Binding CommandButtHldChk}" 
                              IsEnabled="{Binding ButtExportToExcel}"
                              Template="{StaticResource buttRibbonCheck}"/>
</RibbonGroup >