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

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

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

  • 使用ZoomableCanvas:http://www.cnblogs.com/gnielee/archive/2011/03/09/wpf-zoomablecanvas.html
  • 使用微软原生的Thumb类(名称空间System.Windows.Controls.Primitives):https://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.thumb%28v=vs.90%29.aspx?f=255&MSPPError=-2147217396

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

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

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

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

    "Auto" Grid.Row="0" Grid.Column="1">
        "bookViewPresenter" Content="{Binding ShellService.BookView}" Focusable="False"/>
    

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

只看源码的关键点:

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

拉伸前后的效果如下图:
【C#/WPF】UI控件的拖拽/拉伸_第1张图片

【C#/WPF】UI控件的拖拽/拉伸_第2张图片

你可能感兴趣的:(C#,WPF)