0

側面にパネルを表示し、それらを固定/固定解除できるWPFオプションを探しています。基本的に、これはウィンドウを意味し、中央にメインコントロールがあり、このメインコントロールの左側と右側の両方に複数の異なるパネルがあります。これらのパネルはデフォルトで折りたたまれており、ヘッダーのみが表示されています。これらのパネルにカーソルを合わせると、メインコントロール上に展開されます(メインコントロールを移動せずに)が、このパネルを固定して永続的に展開するオプションもあります。今回は、メインセンターコントロールのサイズを強制的に変更します。

これはほとんどのドッキング制御オプションとほとんど同じように聞こえます。実際、AvalonMixModes Synergyを見てきましたが、これらのオプションの問題は、パネルが高さ全体を埋め尽くすことです。特定の高さのパネルにカーソルを合わせたときに、そのパネルが画面に表示されないようにしたいのですが、それを行うものは他に見つかりません。他の誰かがこのようなものを見ましたか?

基本的に、これまでのところ、これを行う方法についての私自身のアイデアは、パネルをあるピン留めされたコントロールから別のピン留めされていないコントロールにプログラムで移動することを含みますが、これはクレイジーに醜く聞こえます。

4

1 に答える 1

0

以下は、Pin/Unpin 機能を実現する方法の純粋な XAMl の例です。

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>


    <DockPanel Grid.Column="1">
        <Label Content="Main Content Area" FontSize="22"
               VerticalAlignment="Center" HorizontalAlignment="Center"/>
    </DockPanel>

    <StackPanel HorizontalAlignment="Left">
        <StackPanel.Style>
            <Style>
                <Setter Property="Grid.Column" Value="1"/>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding ElementName=LeftPinBtn,Path=IsChecked}" Value="True">
                        <Setter Property="Grid.Column" Value="0"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </StackPanel.Style>
        <ToggleButton Content="Pin/Unpin" x:Name="LeftPinBtn"/>
    </StackPanel>

</Grid>

上記のコードでは、

  • 左パネルは、メイン コンテンツの同じグリッド列に配置 (フロート) されます。
  • ToggleButtonがチェックされると、それぞれのドッキング グリッド列にジャンプします。

この例をカスタマイズして、パネルを表示/非表示にするマウスオーバー イベントを含めることができます。

  • 右側に Grid 列を追加すると、HorizontalAlignment="Right" 右側のパネルが表示されます。
  • 同様に、(列の代わりに)行とVerticalAlignmentを使用 すると、上下のピン機能が追加されます。
于 2011-09-11T06:56:39.023 に答える