6

こんにちは、WPF エキスパンダー コントロールのトグル ボタンを右端に揃えることは可能でしょうか?

4

1 に答える 1

15

WPF を使用すると、すべてのことが可能になります。;) 残念ながら、すべてが単純というわけではありません。ここでの最善の策は、エキスパンダーを再テンプレート化することです。ここにあるデフォルトのExpanderテンプレートをコピーすることから始めます。

次に、Grid2 つの列を含む を見つけます。1 つは を含み、もう 1 つは を含みToggleButtonますContentPresenter。トグルが列 1 になるように列を入れ替えます。次に、列定義のサイズを変更して、最初の列が星型のサイズになり、2 番目の列がサイズ 20 になるようにします。終了すると、テンプレートに次のようなチャンクが作成されます。

<Grid>
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="*" />
    <ColumnDefinition Width="20" />
  </Grid.ColumnDefinitions>
    <ToggleButton Grid.Column="1"
      IsChecked="{Binding Path=IsExpanded,Mode=TwoWay,
      RelativeSource={RelativeSource TemplatedParent}}"
      OverridesDefaultStyle="True" 
      Template="{StaticResource ExpanderToggleButton}" 
      Background="{StaticResource NormalBrush}" />
    <ContentPresenter Margin="4" 
      ContentSource="Header" 
      RecognizesAccessKey="True" />
</Grid>

必要なルック アンド フィールが得られるまで、テンプレートの変更を続けます。

編集: MSDN で提供されるテンプレートは、「実際の」エキスパンダー テンプレートの最低限のバージョンです。定型化されたエキスパンダー テンプレートが必要な場合は、Expression Blend を使用して、既存のコントロール テンプレートを からコピーしますExpander

于 2010-04-06T20:23:02.623 に答える