C# 在WPF中的RibbonButton内添加文本框
我正在创建一个WPF。我正在WPF中使用一个功能区。有没有办法创建一个里面有文本块的RibbonButton?这是我正在使用的代码。我想在BaggerActiviebtn中放置一个文本块C# 在WPF中的RibbonButton内添加文本框,c#,wpf,xaml,C#,Wpf,Xaml,我正在创建一个WPF。我正在WPF中使用一个功能区。有没有办法创建一个里面有文本块的RibbonButton?这是我正在使用的代码。我想在BaggerActiviebtn中放置一个文本块 <Ribbon x:Name="RibbonWin" SelectedIndex="0" Margin="81,23,-81,77" Grid.RowSpan="2"> <RibbonTab Header="Home"
<Ribbon x:Name="RibbonWin"
SelectedIndex="0"
Margin="81,23,-81,77"
Grid.RowSpan="2">
<RibbonTab Header="Home"
KeyTip="H">
<!-- Home group-->
<RibbonGroup x:Name="MenuGroup">
<RibbonButton Name="baggerActiveBtn"
Height="67"
Margin="368,36,86,0"
MouseOverBorderBrush="#FFFFC500"
VerticalAlignment="Top"
BorderBrush="Red"
Click="test123">
<RibbonButton.MouseOverBackground>
<LinearGradientBrush EndPoint="0.5,1"
StartPoint="0.5,0">
<GradientStop Color="#FFFFC500"
Offset="0" />
<GradientStop Color="White"
Offset="1" />
</LinearGradientBrush>
</RibbonButton.MouseOverBackground>
</RibbonButton>
</RibbonGroup>
</RibbonTab>
</Ribbon>
您需要编辑按钮的模板
首先,在XAML文件中包含以下xmlns:
右键单击按钮,编辑模板->编辑副本。。。
这是您应该使用的模板的一个片段:
...<Border x:Name="OuterBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="{TemplateBinding CornerRadius}" SnapsToDevicePixels="True">
<Border x:Name="InnerBorder" BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="{TemplateBinding CornerRadius}" Padding="{TemplateBinding Padding}">
<StackPanel x:Name="StackPanel">
<Image x:Name="PART_Image" RenderOptions.BitmapScalingMode="NearestNeighbor" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Height="32" Margin="{DynamicResource {ComponentResourceKey ResourceId=LargeImageMargin, TypeInTargetAssembly={x:Type Ribbon}}}" Source="{TemplateBinding LargeImageSource}" VerticalAlignment="Center" Width="32"/>
<Grid x:Name="Grid" HorizontalAlignment="Center" VerticalAlignment="Center">
<RibbonTwoLineText x:Name="TwoLineText" HorizontalAlignment="Center" LineStackingStrategy="BlockLineHeight" LineHeight="13" Margin="1,1,1,0" TextAlignment="Center" Text="{TemplateBinding Label}" VerticalAlignment="Top"/>
</Grid>
</StackPanel>
</Border>
</Border>...
您应该将TextBlock放置在StackPanel或网格中,以使其符合您的要求。
使用此代码,您可以插入任何您喜欢的控件
这至少应该指导你!
祝你好运。每次选择“编辑副本”时,我都会收到一个错误,显示复制模板失败。我尝试了每一个选项和选项组合,但不断出现错误。RibbonButtons可以编辑吗?我的错,忘了提到应该在xaml中包含这个xmlns:xmlns:ribbon=clr命名空间:System.Windows.Controls.ribbon.Primitives;程序集=System.Windows.Controls.Ribbon
...<Border x:Name="OuterBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="{TemplateBinding CornerRadius}" SnapsToDevicePixels="True">
<Border x:Name="InnerBorder" BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="{TemplateBinding CornerRadius}" Padding="{TemplateBinding Padding}">
<StackPanel x:Name="StackPanel">
<Image x:Name="PART_Image" RenderOptions.BitmapScalingMode="NearestNeighbor" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Height="32" Margin="{DynamicResource {ComponentResourceKey ResourceId=LargeImageMargin, TypeInTargetAssembly={x:Type Ribbon}}}" Source="{TemplateBinding LargeImageSource}" VerticalAlignment="Center" Width="32"/>
<Grid x:Name="Grid" HorizontalAlignment="Center" VerticalAlignment="Center">
<RibbonTwoLineText x:Name="TwoLineText" HorizontalAlignment="Center" LineStackingStrategy="BlockLineHeight" LineHeight="13" Margin="1,1,1,0" TextAlignment="Center" Text="{TemplateBinding Label}" VerticalAlignment="Top"/>
</Grid>
</StackPanel>
</Border>
</Border>...