グリッドにスクロールバーを追加するにはどうすればよいですか?
<Grid>
<Menu Height="23" Name="menu1" VerticalAlignment="Top">
<MenuItem Header="File">
<MenuItem Command="ApplicationCommands.New" Header="New" />
<MenuItem Command="ApplicationCommands.Save" Header="Save" />
<MenuItem Command="ApplicationCommands.Open" Header="Open" />
<MenuItem Command="ApplicationCommands.Close" Header="Exit" />
</MenuItem>
<MenuItem Header="Stuff">
<MenuItem Header="Properties" Command="Properties"/>
<MenuItem Header="Tileset" Command="Replace"/>
</MenuItem>
</Menu>
<Grid Margin="0,24,0,0">
<Canvas HorizontalAlignment="Stretch" Name="canvas1" VerticalAlignment="Stretch" MouseMove="MoveMouse" MouseDown="PressDownMouse" MouseUp="canvas2_MouseLeftButtonUp" MouseWheel="canvas1_MouseWheel"/>
<Canvas HorizontalAlignment="Stretch" Name="canvas2" VerticalAlignment="Stretch" MouseMove="MoveMouse" MouseDown="PressDownMouse" MouseUp="canvas2_MouseLeftButtonUp" MouseWheel="canvas1_MouseWheel"/>
<ListView HorizontalAlignment="Left" Name="listView1" Width="203" VerticalAlignment="Stretch" SelectionChanged="listView1_SelectionChanged">
</ListView>
</Grid>
</Grid>
2つのキャンバスが高すぎるか、幅が広すぎる可能性があります。
これはタイルマップエディターで、すべてをキャンバスに描画します。 ListView
には、挿入するタイルがあります。
通常、要素を<ScrollViewer>
でラップするか、要素のXAML内にScrollViewer.HorizontalScrollBarVisibility
とScrollViewer.VerticalScrollBarVisibility
を設定できます。必要なときにだけ表示されるように、Auto
に設定するのが好きです。
これを試してみてください:
<ScrollViewer>
<Grid>
// some code
</Grid>
</ScrollViewer>
さらに助けを求めて編集!以下は、より良いレイアウトの例です。リストビューが左側にあり、2つのキャンバスが続きます。これらを上に配置したり、レイアウトを変更したりすることもできますが、その方法を説明します。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Menu Name="menu1" >
<MenuItem Header="File">
<MenuItem Command="ApplicationCommands.New" Header="New" />
<MenuItem Command="ApplicationCommands.Save" Header="Save" />
<MenuItem Command="ApplicationCommands.Open" Header="Open" />
<MenuItem Command="ApplicationCommands.Close" Header="Exit" />
</MenuItem>
<MenuItem Header="Stuff">
<MenuItem Header="Properties" Command="Properties"/>
<MenuItem Header="Tileset" Command="Replace"/>
</MenuItem>
</Menu>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ListView />
<Canvas Grid.Column="1"/>
<Canvas Grid.Column="2"/>
</Grid>
</Grid>