2012-01-07 13 views

答えて

19

FlowDirectionRightToLeftに設定することもできますが、それ以外の問題が発生する可能性があります。たとえば、エキスパンダーのコンテンツのフロー方向も変更されるため、エキスパンダーの内容を元に戻す必要があります。

0

これにアプローチする別の方法は、エキスパンダー自体にヘッダーやコンテンツを含めずに、好きな場所にエキスパンダーを配置することです。 BooleanToVisibilityConverterを使用して、コンテンツコントローラーの表示を展開ツールIsExpandedにバインドします。

<StackPanel> 
    <StackPanel.Resources> 
     <BooleanToVisibilityConverter x:Key="boolToVisibility" /> 
    </StackPanel.Resources> 
    <DockPanel> 
     <Expander DockPanel.Dock="Right" x:Name="rightAlignedExpander" /> 
     <TextBlock Text="Expanders header" VerticalAlignment="Center" /> 
    </DockPanel> 
    <Grid Visibility="{Binding IsExpanded, ElementName=rightAlignedExpander, Converter={StaticResource boolToVisibility}}"> 
    <TextBlock Text="Expanders content"/> 
    </Grid> 
</StackPanel> 

欠点は、ヘッダがクリックされたとき、それは拡大しないことであるが、必要に応じてそれを容易に実現することができます。
個人的には、これはコントロールのテンプレートを完全に元に戻すのではなく、より単純でわかりやすいと思います。 DevExpressやTelerikのようなサードパーティのテーマを使用する場合など、エキスパンダーに既に適用されているスタイルを保持するという利点もあります。

関連する問題