2012-02-15 125 views
8

デフォルトでは、エクスパンダには左揃えのトグルボタンがありますが、私のWPFアプリでは、Expression Blendの助けを借りずにヘッダの右側にあるボタンを切り替える必要があります。 XAMLやC#の単なるプレーンです。私のエキスパンダーには、ラベルを子として持つ垂直方向のスタックパネルが含まれています。Expander ToggleButtonを右に置く方法

私はその部分に行きましたが、hereには「Expanderコントロールには名前付き部分がありません」と記載されています。

私は例hereを見つけました。しかし、デフォルトのExpander Styleよりも優先されます。

添付の画像は私が望むものを伝えるべきだと思います。実行する方法。すべてのリンクが役立ちます。

enter image description here

答えて

9

使用この:

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

あなたが左に右のように全体の内容にしたくない場合は、TextBlockでコンテンツを追加します。

+0

@NikhilAgrawalを助けることができるトリックがあります。あなたの 'StackPanel'の' FlowDirection'を 'LeftToRight'に設定することができます。 –

+0

私は何を提案しましたか。私のエキスパンダーには、ラベルを子として持つ垂直方向のスタックパネル(Orientation = Vertical)が含まれています(動的に追加されました)。私は、expander FlowDirection = "RightToLeft"とstackpanel FlowDirection = "LeftToRight"と設定しました。ありがとう –

15

私はあなたがLeftToRightコンテナ(私の例では `TextBlock`)内のコンテンツを置く必要がある、と述べたよう

<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> 
+0

あなたの答えがMD.Unicornの答えとどのように違うかをお聞かせください。 –

+1

はい。彼の答えでは、ヘッダーテキストはToggleButtonと共に右揃えになります。私のソリューションでは、ヘッダーテキストはまだ左揃えされており、ToggleButtonだけが左から右に移動しています。 – Nitesh

+0

質問者はこの回答を期待していないか、実際にこれが必要ではないと考えていましたが、それは私自身の問題で私を助けました。乾杯! –

関連する問題