首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UniformGrid中按钮的块/矩形选择

UniformGrid中按钮的块/矩形选择
EN

Stack Overflow用户
提问于 2019-08-12 13:48:21
回答 1查看 139关注 0票数 0

我在UniformGrid中以编程方式生成了按钮,即4行4列,因此16个按钮。

我希望能够单击并拖动以创建一个矩形框来选择按钮框。

这个是可能的吗?

正在尝试使用此示例,但未看到拖放框出现。

Click and drag selection box in WPF

目前,由于所有这些代码都是编程的,所以XAML中的UniformGrid代码如下:

代码语言:javascript
复制
                    <Canvas DockPanel.Dock="Top" Name="buttonCanvas" Width="800" Height="400">
                        <Rectangle x:Name="selectionBox" Visibility="Collapsed" Stroke="White" StrokeThickness="4" />
                        <UniformGrid DockPanel.Dock="Top" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" x:Name="uniformGrid" Grid.Row="1" Width="800" Height="400"
                  Rows="{Binding RowNums}"
                  Columns="{Binding ColumnNums}" MouseDown="uniformGrid_MouseDown" MouseUp="uniformGrid_MouseUp" MouseMove="uniformGrid_MouseMove" Background="Transparent">
                        </UniformGrid>
                        <!-- This canvas contains elements that are to be selected -->
                    </Canvas>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-12 14:49:18

从在Canvas上绘制UniformGrid开始

代码语言:javascript
复制
<Grid>
    <UniformGrid>
        <Button/>
        ...etc....
    </UniformGrid>
    <Canvas/>
<Grid>

然后你会通过鼠标向下处理,鼠标移动和鼠标向上的事件为画布。在鼠标向下,您将添加一个矩形到画布上作为当前鼠标pos,在鼠标移动中,您将调整矩形的大小,根据当前鼠标pos,并计算出哪些按钮被矩形包围,并通过绑定到某个视图模型将其设置为"selected“。在鼠标向上,您将删除矩形。在样式中会有某种类型的触发器,以便在选择时将样式设置为不同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57462453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档