1

私はWPFを初めて使用し、エキスパンダーを使用してドロップダウンメニューを作成しようとしています。ページレイアウトは。で処理されていGridます。

エクステンダーはグリッドの最初の行の内側にあり、クリックすると、エクスパンダーのコンテンツが下のすべてのコンテンツの上に展開されるようにしたいと思います。残念ながら、現在、拡張されたコントロールの高さに対応するために行全体が拡張されています。

のをいじってみましたがZIndexExpander効果がないようです。いずれにせよ、行は常に拡大し、ページ上の他のすべてのものを強制的に移動させます。

<Expander FontSize="18" Name="moduleSelect" Width="100" Header=" Goto -> " 
          Background="#000033" MouseEnter="moduleSelect_MouseEnter" 
          MouseLeave="moduleSelect_MouseLeave" Foreground="White"
          Grid.Column="0" Grid.ColumnSpan="3" Grid.Row="1" HorizontalAlignment="Left">
    <StackPanel>
        <Button Name="btnTasks" Width="100" Foreground="White"
                Background="#000033">Tasks</Button>
        <Button Name="btnNotes" Width="100" Foreground="White"
                Background="#000033">Notes</Button>
    </StackPanel>
</Expander>

グリッドを歪めることなく、これを後続の行の「上」に展開するにはどうすればよいですか?

4

3 に答える 3

1

グリッド内で展開するのではなく、グリッド上にポップアップするものが必要です。A ComboBox、たとえば、または - これは結局メニューです - a ContextMenu

ToggleButtonaと a の組み合わせを構築することもできますがPopup、これは基本的に aComboBoxIsEditableオフにした場合と同じです。

于 2010-01-29T22:02:02.967 に答える
1

のをに設定するとどうなりますGrid.RowSpanか(または、展開したときにスパンする行数)?Expander2

したがって、2 行のグリッドの場合は、次のようになります。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="30" /> <!--set this to the height of the expander's header area-->
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <WhateverGoesInRow2 Grid.Row="1" />
    <Expander FontSize="18" Name="moduleSelect" Width="100" Header=" Goto -> " 
        Background="#000033" MouseEnter="moduleSelect_MouseEnter" 
        MouseLeave="moduleSelect_MouseLeave" Foreground="White"
        Grid.Column="0" Grid.ColumnSpan="3" HorizontalAlignment="Left"
        Grid.Row=0 Grid.RowSpan="2">
        <StackPanel>
            <Button Name="btnTasks" Width="100" Foreground="White" Background="#000033">Tasks</Button>
            <Button Name="btnNotes" Width="100" Foreground="White" Background="#000033">Notes</Button>
        </StackPanel>
    </Expander>
</Grid>

特定の状況に合わせてセクションを調整する必要があるかもしれませんがRowDefinition、問題を正しく理解していれば、これでうまくいくと思います。

于 2010-01-29T20:36:06.053 に答える
0

組み込みのドロップダウン コントロールは、デフォルト コントロール テンプレートで Popup コントロールを使用して同様のことを行います。

于 2010-01-29T20:11:58.640 に答える