【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 >。

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

拉伸后

 

posted @ 2017-02-23 11:20  霍莉雪特  阅读(3058)  评论(0编辑  收藏  举报