C#でWPF学習中「Grid間の仕切を調整可能にする」

C# コンピュータ
C#
GridSpliterを使うことでGrid間を仕切る位置を調整することが出来るようなので試してみました。

実行環境

Windows10 2004
dotnet –version 5.0.104
Visual Studio Code
PowerShell 5.1

プロジェクトの作成

mkdir プロジェクト名
cd プロジェクト名
dotnet new wpf

ソースコード

ファイル名:MainWindow.xaml

<Window x:Class="WpfSample24GridSpliter.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfSample24GridSpliter"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="5" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <StackPanel
            Margin="10"
            Grid.Column="0">
            <Label>左側</Label>
        </StackPanel>
        <GridSplitter
            Grid.Column="1"
            HorizontalAlignment="Stretch"
            Background="Blue" />
        <WrapPanel
            Margin="10"
            Grid.Column="2">
            <Label>右側</Label>
        </WrapPanel>
    </Grid>
</Window>

説明

青色の仕切がGridSpliterで、マウスでドラッグすると動かすことが出来ました。
追記:2022/03/09
右側に移動不可を修正しました。
GridSpliterのWidthの指定をやめGridSpliterの配置されたColumnDefinitionのWidthで指定。
VerticalAlignmentをHorizontalAlignmentにへ変更。

コメント