How to put Expander ToggleButton on right

不羁的心 提交于 2019-12-18 15:53:10

问题


By default the expander has a left aligned toggle button but in my WPF app i want toggle button on the right side of the header without the help of Expression Blend. just plain XAML and/or C#. My expander contains a vertically oriented stackpanel which has labels as its child.

I went for its part but here it says "The Expander control does not have any named parts".

I found an example here. But it overrides the default Expander Style.

I think the attached image should convey what i want. How to do. Any link would be helpful.


回答1:


Use this:

<Expander Header="Expander1" FlowDirection="RightToLeft">
    <TextBlock FlowDirection="LeftToRight">
    </TextBlock>
</Expander>

Add your content in the TextBlock, if you don't want to the whole content to be right to left.




回答2:


There is a trick that can help

<Expander Header="My Expander" 
          FlowDirection="RightToLeft">
    <Expander.HeaderTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=Expander}, Path=Header}"
                       Width="{Binding RelativeSource={RelativeSource AncestorType=Expander}, Path=ActualWidth}" 
                       Margin="-30,0,0,0"
                       FlowDirection="LeftToRight">
            </TextBlock>
        </DataTemplate>
    </Expander.HeaderTemplate>
</Expander>


来源:https://stackoverflow.com/questions/9288342/how-to-put-expander-togglebutton-on-right

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!