18

XAMLで、Visual Studioのツールボックス、ソリューションエクスプローラー、エラーリストなどのさまざまなパネルを取得してサイズを変更する方法で、コントロールまたはディスプレイの一部のサイズを変更できるようにするにはどうすればよいですか?

この構成された例では。。。

<Window x:Class="UI_Experiments_1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <DockPanel x:Name="Tab3DockPanel" Background="#FFA0FFA0" LastChildFill="True">
        <ScrollViewer DockPanel.Dock="Left" Background="Lavender">
            <TextBlock Height="60" TextWrapping="Wrap" Background="#FFFFDDDD" Width="140">
                  ScrollViewer - DockPanel.Dock="Left"
            </TextBlock>
        </ScrollViewer> 
        <TextBlock DockPanel.Dock="Top" HorizontalAlignment="Center" 
               TextWrapping="Wrap" Background="LemonChiffon">
               DockPanel.Dock="Top" HorizontalAlignment="Center"
        </TextBlock>
        <ListBox DockPanel.Dock="Right" Background="#FFCCEEFF">
               ListBox DockPanel.Dock="Bottom" 
        </ListBox>
    </DockPanel>
</Window>

。。。左側にScrollViewがドッキングされ、下部にListBoxがドッキングされ、上部にTextBlockがドッキングされたDockPanelがあります。同じ効果を達成するためにこれらにサイズ変更ハンドルを取り付ける方法はありますか、またはこれらを埋め込むことができる他のコントロールがありますか?私が言ったように、上記は実験するための単なる作り上げの例です-私がそれらの正確なコントロールを使用するかどうかは気にしません。

MSDNでAdornerを使用してサイズ変更ハンドルを追加する例を見つけましたが、170行を超えるC#コードが含まれていたため、採用する前に、XAMLでこれを実現する本質的な方法がないことを確認したいと思いました。

前もって感謝します。

4

2 に答える 2

17

GridSplitterを使用 する場合があります。必要なのは、Gridを使用してレイアウトを実行してから、GridSplitterを使用して列または行のサイズを変更することです。

方法の例を次に示します。GridSplitterを使用してユーザーサイズ変更可能なアプリケーションを作成する

于 2012-08-01T19:30:52.787 に答える
17

あなたが尋ねた正確なコントロールではなく、サンプルです。スプリッターと両側にあるもの*と含まれているコントロールストレッチが必要です。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="auto" />
        <ColumnDefinition Width="*" />     
    </Grid.ColumnDefinitions>
    <TextBox Grid.Row="0" Grid.Column="0" 
             HorizontalAlignment="Stretch" 
             VerticalAlignment="Stretch" 
             Text="TexBox" />      
    <GridSplitter Grid.Row="0" Grid.Column="1" Margin="2,0,2,0"
                  Width="3" Background="Purple" 
                  VerticalAlignment="Stretch" 
                  HorizontalAlignment="Center" />
    <ListView Grid.Row="0" Grid.Column="2" Background="Aqua" 
              HorizontalAlignment="Stretch" 
              VerticalAlignment="Stretch"/>
</Grid>
于 2012-08-01T20:08:24.970 に答える