如何在WPF功能区元素上获得统一的宽度?

时间:2015-01-29 20:59:13

标签: c# wpf xaml wpf-controls ribbon

我正在使用功能区创建一个WPF应用程序,并且元素都是奇怪的大小。我希望两个文本框的宽度相同,但我也希望文本从左侧的相同位置开始。

理想情况下,这会在Tags Loaded的{​​{1}}标签和框本身之间添加空格。我该怎么做才能得到统一的布局。所有文本都应从黑线开始,RibbonTextBox都应从红线开始。至少我想将第一个Text Boxes的结尾延伸到第二个结束的地方。

Odd sizing for combo box

1 个答案:

答案 0 :(得分:0)

您可以将RibbonTextBox的模板重新定义为以下内容:

    <Style TargetType="{x:Type rb:RibbonTextBox}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type rb:RibbonTextBox}">
                    <Grid   Width="{Binding Path=ActualWidth, RelativeSource={RelativeSource AncestorType={x:Type rb:RibbonGroup}}}">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition/>
                            <ColumnDefinition/>
                        </Grid.ColumnDefinitions>
                        <TextBlock   Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Label}" />
                        <TextBox Grid.Column="1"   Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Text}"   />
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>