首页 > 编程知识 正文

wpfcanvas鼠标事件,wpf报表控件

时间:2023-05-03 13:41:13 阅读:107734 作者:1651

WPF“控制”面板中的所有基本类控件都是从Panel类派生的,而Panel本身是UIElement。 Anel(abstract )排版控件:

sackpanelwrappaneluniformgriddockpanelgridcanvas链接: https://zhuan LAN.zhi Hu.com/p/357897287

另一方面,Grid表格形式面板1 ) Grid需要以表格形式对UI进行排序,并定制排序规则。

作者: WEI链接: https://zhuan.zhi Hu.com/p/357897287 grid grid.row definitions//row definitions设置行rowdefinition/row definitions grid.rowdefinitionsgrid.column definitions//column definitions设置列column definition/column definition/column column definition grid.columndefinitionsrectanglegrid.row='0' grid.column='0' fill=' white '//row的值为行坐标rectande 列坐标rectangle grid.row='2' grid.column='0' fill=' blue '/rectangle grid.row='0' grid.column=' 1 rectangle grid.row='1' grid.column='1' fill=rectangle grid.row='1' grid.column='2' fill=' orange '/rectangle grid.row='2' grid.column='1' fill=rectangle grid.row='2' grid.column='2' fill=' violet/包括行容器(RowDefinitions )和列容器(ColumnDefinitions ),其中RowDefinitions设置行,Row值表示行坐标,ColumnDefinitions设置列,Column

2 )调整网格行或列的大小

Grid调整Grid矩阵大小的方法有三种:

绝对尺寸如果将Grid矩阵的尺寸作为一个数值的话,Grid的矩阵尺寸不会根据其中的UI的尺寸自动调整。 自动调整大小,将网格高度和宽度设置为自动。 Grid的UI自动调整矩阵的高度或宽度。 按比例分割矩阵尺寸,将有限的平面尺寸按一定比例分割长宽比,该比例的数值可以是浮点数。 grid grid.rowdefinitionsrowdefinitionheight=' 50 '//绝对尺寸RowDefinition Height='1*'///比例尺寸rowdefinitionheight=grid.rowdefinitionsrectanglegrid.row='0' fill=' light blue '/rectangle grid.row='1' fill=' light grid='1'

RowSpan (横向设置) ) ) ) ) ) ) ) ) )。

列间设置)。

作者: WEI链接: htt

ps://zhuanlan.zhihu.com/p/357897287<Grid> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Rectangle Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Fill="White" /> //跨两行 <Rectangle Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2" Fill="Red" /> //跨两列 <Rectangle Grid.Row="0" Grid.Column="1" Grid.RowSpan="2" Grid.ColumnSpan="2" Fill="Yellow" /> //跨两行和两列 </Grid> 二、StackPanel

可将包航的元素在竖直或水平方向上排成一条直线,当移动一个元素后后面的元素会自动向前移动以填充空缺。该面板简单的在单行或单列中以堆栈形式放置其子元素。

常用属性描述Orientation定义UI排列方向(默认 Horizontal)LayoutTransform定义UI缩放旋转SizeToContent根据内容调整大小<Window x:Class="WpfApplication6.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <StackPanel> <Label>a</Label> <Button>button1</Button> <Button>button2</Button> <Button>button3</Button> <Button>button3</Button> </StackPanel></Window>


注意:虽然每个元素都提供Height和Width属性,用于显示的指定元素大小,但是不推荐使用。应当使用最大最小尺寸属性,将控件限制在正确的范围内。(使用“样式”允许重复使用属性设置的特性)

WrapPanel (换行面板)

WrapPanel 可根据其中 UI 的尺寸和其自身的大小自动把其中的 UI 排列到下一行或下一列,相当于自动换行。

<WrapPanel> <Rectangle Margin="2" Width="200" Height="50" Fill="LightGreen"/> <Rectangle Margin="2" Width="200" Height="50" Fill="LightGreen"/> <Rectangle Margin="2" Width="200" Height="50" Fill="LightGreen"/> <Rectangle Margin="2" Width="200" Height="50" Fill="LightGreen"/> <Rectangle Margin="2" Width="200" Height="50" Fill="LightGreen"/> <Rectangle Margin="2" Width="200" Height="50" Fill="LightGreen"/> </WrapPanel> 三、DockPanel

DockPanel内的元素会被附加上DockPanel.Dock这个属性,有Left,Top,Right和Bottom这四个属性,根据Dock的属性,DockPanel内的元素会根据他的属性在制定方向累计和切分DockPanel内的剩余空间。类似于winform中的Dock附加属性。

<Menu DockPanel.Dock="Top" Background="White"> <!-- LastChildFill 属性设置为Ture,告诉DockPanel面板最后一个元素占满剩余空间 --> <DockPanel> <Rectangle DockPanel.Dock="Bottom" Width="200" Height="50" Fill="LightGray"/> <Rectangle DockPanel.Dock="Top" Width="200" Height="50" Fill="LightCoral"/> <Rectangle DockPanel.Dock="Right" Width="200" Height="50" Fill="LightBlue"/> <Rectangle DockPanel.Dock="Left" Width="200" Height="50" Fill="LightGreen"/> <Rectangle Width="50" Height="50" Fill="LightPink"/> </DockPanel>

使用Grid和GridSplitter来分割窗口
分割条由GridSplitter类表示,GridSplitter对象必须放在Grid单元格中,可以预留一列或一行专门用于放置GridSplitter。它的对齐放置决定了分割条是水平的还是竖指的,对于水平分割需将VerticalAlignment属性设置为Center,对于竖直分割条,需要将HorizontalAlignment属性设置为center.

四、Canvas

Canvas 可对其内部元素设定边界值,其作用类似于(Margin),默认为停靠左上角。

<Canvas> <TextBox Text="左上角" Width="100" Height="100" Canvas.Top="0" Canvas.Left="0"/> <TextBox Text="右上角" Width="100" Height="100" Canvas.Top="0" Canvas.Right="0"/> <TextBox Text="右下角" Width="100" Height="100" Canvas.Bottom="0" Canvas.Right="0"/> <TextBox Text="左下角" Width="100" Height="100" Canvas.Bottom="0" Canvas.Left="0"/> </Canvas>作者:WEI链接:https://zhuanlan.zhihu.com/p/357897287 五、Border

Border类非常简单。它只能包含一段嵌套内容(通常是布局面板),并为其添加背景或在其周围添加边框。

<Border Padding="5" BorderBrush="SteelBlue" BorderThickness="5" CornerRadius="3"> <StackPanel> <Button>1</Button><!-- BorderBrush和 BorderThickness常常合用, CornerRadius使边宽具有圆角--> <Button>2</Button><!-- 在边框和内部的内容之间添加空间(与此相对应,Margin属性在边框之外添加空间) --> <Button>3</Button> </StackPanel> </Border>

装载一篇文章,关于布局讲解的非常不错:https://www.zhihu.com/collection/646958178

UniformGrid (统一面板)

UniformGrid 将其内部所有元素按当前面板大小进行统一尺寸,自动排列。

<UniformGrid> <TextBox Margin="5" Text="1"/> <TextBox Margin="5" Text="2"/> <TextBox Margin="5" Text="3"/> <TextBox Margin="5" Text="4"/> <TextBox Margin="5" Text="5"/> <TextBox Margin="5" Text="6"/> <TextBox Margin="5" Text="7"/> <TextBox Margin="5" Text="8"/> <TextBox Margin="5" Text="9"/> </UniformGrid>

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。