添加采用所有窗口大小的画布,并在左下角添加一个按钮,按百分比添加边距
Posted
技术标签:
【中文标题】添加采用所有窗口大小的画布,并在左下角添加一个按钮,按百分比添加边距【英文标题】:Add canvas that takes all window size, and a button in bottom left corner, margined by percentage 【发布时间】:2018-04-10 12:21:03 【问题描述】:我正在尝试有一个画布,它在调整大小时采用所有窗口大小,并在其上的左下角有一个按钮,但它会随着窗口调整大小(可能达到某个最大大小),并且边距左侧和底部的按钮也会随窗口调整大小。
我试图用这样的网格来实现它:
<Canvas Background = "LightGray" x:Name="PaintCanvas"
VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
Height="auto" Width="auto">
<Grid ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="8*" />
<RowDefinition Height="20*" />
<RowDefinition Height="62*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="8*" />
<ColumnDefinition Width="5*" />
<ColumnDefinition Width="87*" />
</Grid.ColumnDefinitions>
<Button x:Name="testBut" Content="TEST"
Grid.Column="1" Grid.Row="1"
MaxHeight="150" MaxWidth="50"
/>
</Grid>
</Canvas>
编辑:看来我必须用网格填充画布。
【问题讨论】:
【参考方案1】:所以,我是这样处理的:
添加了我的网格(带有用作边距的预定义空单元格)作为 Window 的唯一子项。然后将 Canvas 添加为网格的子级,但指定它跨越其所有行和列 - 填充整个网格(和窗口):
<Canvas Background="WhiteSmoke" x:Name="PaintCanvas"
VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
Grid.RowSpan="3" Grid.ColumnSpan="3"/>
最后,我把按钮放在需要的单元格中
【讨论】:
以上是关于添加采用所有窗口大小的画布,并在左下角添加一个按钮,按百分比添加边距的主要内容,如果未能解决你的问题,请参考以下文章
winform 不想自动弹出窗口, 最小化後图标要显示在右下角 (像杀毒软件那样),要怎麼做?