RibbonGroup中的RibbonCheckBox对齐方式

时间:2013-12-08 21:16:04

标签: wpf xaml ribbon

<RibbonWindow x:Class="xxx.yyy"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
...
    <Ribbon x:Name="mainRibbon" Grid.Row="0" >
...
        <RibbonTab Name="ComparisonTab" HorizontalContentAlignment="Left" Header="Comparison" >
            <!--<StackPanel Orientation="Vertical" HorizontalAlignment="Left">-->
            <RibbonGroup HorizontalContentAlignment="Left" Header="Images" >
                <RibbonCheckBox HorizontalAlignment="Left" Width="200" IsChecked="{Binding CompInfo1Check}" Label="{Binding CompInfo1Text}" />
                <RibbonCheckBox HorizontalAlignment="Left" Width="200" IsChecked="{Binding CompInfo2Check}" Label="{Binding CompInfo2Text}" />
                <RibbonCheckBox HorizontalAlignment="Left" Width="200" IsChecked="{Binding CompInfo3Check}" Label="{Binding CompInfo3Text}" />
            </RibbonGroup>
            <!--</StackPanel>-->
        </RibbonTab>

我有一些带有动态文本(标签)的复选框,我希望它们在功能区组中保持对齐 我已经尝试了所有可以想象的水平(内容)对齐组合对他们和他们的父母。我试图将它们放入容器(StackPanel,Grid)。我甚至试图将标签设置为单独的元素。

复选框固执地保持在功能区组中的中心位置。如何将它们水平对齐到左边?

1 个答案:

答案 0 :(得分:0)

我找到了在功能区内使用标准复选框的解决方法。它们的对齐没有问题。如果需要,它们可以被设计为看起来像带状复选框。

因此,修改后的xaml是:

        <RibbonTab Name="ComparisonTab" HorizontalContentAlignment="Left" Header="Comparison" >
            <RibbonGroup Header="Images" >
                <StackPanel Orientation="Vertical" HorizontalAlignment="Left">
                    <CheckBox Height="25" IsChecked="{Binding CompInfo1Check}" Content="{Binding CompInfo1Text}" />
                    <CheckBox Height="25" IsChecked="{Binding CompInfo2Check}" Content="{Binding CompInfo2Text}" />
                    <CheckBox Height="25" IsChecked="{Binding CompInfo3Check}" Content="{Binding CompInfo3Text}" />
                </StackPanel>
            </RibbonGroup>
        </RibbonTab>

修改
可能更好的方法是使用网格,RibbonCheckBox而不使用标签和TextBlock。 解释here