【C#/WPF】UI控件的拖拽/拉伸

原文: 【C#/WPF】UI控件的拖拽/拉伸

需求①:控件拖拽——按住鼠标,可自由拖拽控件。

方法:目前看到的办法有两种。


需求②:控件拉伸——鼠标位于控件边缘时,鼠标变为可拉伸的符号,按住鼠标左键可自由拖动以拉伸控件。

方法:做WPF项目时,看到WAF框架的Example中有一个类似的用法,记录一下关键部分。

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="300"
                          MinWidth="{Binding Content.MinWidth, ElementName=bookViewPresenter}"/>
    </Grid.ColumnDefinitions>

    <ContentControl Content="{Binding ShellService.BookListView}" Grid.Row="0" Grid.Column="0" Margin="0,0,5,0"/>

    <ScrollViewer VerticalScrollBarVisibility="Auto" Grid.Row="0" Grid.Column="1">
        <ContentControl x:Name="bookViewPresenter" Content="{Binding ShellService.BookView}" Focusable="False"/>
    </ScrollViewer>

    <GridSplitter HorizontalAlignment="Right" VerticalAlignment="Stretch" Width="4" Grid.Row="0" Grid.Column="0"/>
</Grid>

只看源码的关键点:

  • 将控件包裹在Grid内,使用< GridSplitter >。

拉伸前后的效果如下图:
拉伸前

拉伸后

猜你喜欢

转载自www.cnblogs.com/lonelyxmas/p/12741773.html