如何将Scrollbars添加到Grid

Gre*_*ggy 13 c# wpf xaml scrollbar

如何将滚动条添加到网格?

    <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>
Run Code Online (Sandbox Code Playgroud)

两幅画布可能太高或太宽.

这是Tile Map Editor,我在画布上画了一切.在ListView我有瓷砖插入.

The*_*fen 13

通常你可以用包裹元素<ScrollViewer>或设定ScrollViewer.HorizontalScrollBarVisibilityScrollViewer.VerticalScrollBarVisibility元素的XAML中.我喜欢设置Auto,以便它们只在需要时出现.

试试吧:

<ScrollViewer>
  <Grid>
  // some code
  </Grid>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

编辑以获得进一步的帮助!这是一个更好的布局的例子,列表视图在左边,然后是两个画布.您可能希望将这些放在彼此之上或具有不同的布局,但这将告诉您如何执行此操作:

<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>
Run Code Online (Sandbox Code Playgroud)