C# 如何使用“拉伸树视图项目”;XAML工具包中的材料设计;控制

C# 如何使用“拉伸树视图项目”;XAML工具包中的材料设计;控制,c#,wpf,material-design-in-xaml,C#,Wpf,Material Design In Xaml,我希望在TreeViewItem中有两个控件,Textblock向左对齐,togglebutton/内容控件向右对齐。要使用标准WPF控件执行此操作,需要覆盖标准ItemContainerStyle并删除第二列和/或将属性HorizontalContentAlignment设置为“拉伸”。但由于XAML工具箱控件中的材质设计无法正常工作 我的代码: <DataTemplate x:Key="DTBooleanOption" > <ToggleButton

我希望在TreeViewItem中有两个控件,Textblock向左对齐,togglebutton/内容控件向右对齐。要使用标准WPF控件执行此操作,需要覆盖标准ItemContainerStyle并删除第二列和/或将属性HorizontalContentAlignment设置为“拉伸”。但由于XAML工具箱控件中的材质设计无法正常工作

我的代码:

    <DataTemplate x:Key="DTBooleanOption" >
        <ToggleButton DockPanel.Dock="Right"
          Style="{StaticResource MaterialDesignSwitchDarkToggleButton}"
          ToolTip="MaterialDesignSwitchDarkToggleButton"
          IsChecked="{Binding Value}" />
    </DataTemplate>
    <DataTemplate DataType="{x:Type models:Option}">
        <DockPanel HorizontalAlignment="Stretch" >
            <TextBlock Text="{Binding Name}" DockPanel.Dock="Left" HorizontalAlignment="Left" />
            <ContentControl Content="{Binding}" ContentTemplateSelector="{StaticResource OptionDataTemplateSelector}" DockPanel.Dock="Right" HorizontalContentAlignment="Stretch" HorizontalAlignment="Right"/>
        </DockPanel>
    </DataTemplate>
    <HierarchicalDataTemplate DataType="{x:Type models:OptionGroup}" ItemsSource="{Binding Items}" >
        <TextBlock Text="{Binding Path=Name}" HorizontalAlignment="Stretch"/>
    </HierarchicalDataTemplate>


<StackPanel>
    <TreeView ItemsSource="{Binding Settings.SettingGroups}"  >
        <TreeView.ItemContainerStyle>
            <Style TargetType="TreeViewItem" BasedOn="{StaticResource MaterialDesignTreeViewItem}">
                <Setter Property="VerticalContentAlignment" Value="Stretch" />
                <Setter Property="VerticalAlignment" Value="Stretch"/>
                <!--<Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="TreeViewItem"  >
                            <StackPanel>
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto"
                            MinWidth="19" />
                                        <ColumnDefinition Width="*" />
                                    </Grid.ColumnDefinitions>
                                </Grid>
                            </StackPanel>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>--> 
            </Style>
        </TreeView.ItemContainerStyle>
    </TreeView>
</StackPanel>

如何拉伸它使一个控件向左对齐,一个控件向右对齐

1)您有以下错误:

<Setter Property="VerticalContentAlignment" Value="Stretch" />

应该是:

<Setter Property="HorizontalContentAlignment" Value="Stretch" />

2) 您的坞面板应类似于:

<DockPanel HorizontalAlignment="Stretch" LastChildFill="True" >
    <ToggleButton DockPanel.Dock="Right"
      Style="{StaticResource MaterialDesignSwitchDarkToggleButton}"
      ToolTip="MaterialDesignSwitchDarkToggleButton"
       />
    <TextBlock Text="{Binding Name}" HorizontalAlignment="Left" />
</DockPanel>

谢谢,我没有注意到存在垂直内容对齐而不是水平内容对齐。我改变了这一点,它的工作!