【WPF】Windows App 比例布局的实现

<Grid Padding="0,20,20,20">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="1*" MaxWidth="200"/>    //此处的"1*"即是所占比例
                <ColumnDefinition Width="8*" />
            </Grid.ColumnDefinitions>
            <view:Canvas x:Name="Canvas" Grid.Column="1"/>
            <Grid Grid.Column="0">
                <Grid.RowDefinitions>
                    <RowDefinition Height="1*" MaxHeight="160"/>
                    <RowDefinition Height="3*" />
                    <RowDefinition Height="1*" MaxHeight="160"/>
                </Grid.RowDefinitions>
                <Border Grid.Row="0" BorderThickness="1" BorderBrush="LightGray" MinWidth="20" >
                    <Button x:Name="Back" Click="Back_Click" Grid.Row="0" Background="Transparent" VerticalAlignment="Center" HorizontalAlignment="Center">
                        <StackPanel>
                            <Image Source="/Assets/back_normal.png" MaxWidth="100"/>
                        </StackPanel>
                    </Button>
                </Border>
                <Border Grid.Row="1" BorderThickness="1,0,1,0" BorderBrush="LightGray" MinWidth="20">
                    <StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center">
                        <Button x:Name="Pen" Background="Transparent" Click="Pen_Click">
                            <StackPanel>
                                <Image x:Name="PenImage" Source="/Assets/pen_selected.png" MaxWidth="100" SizeChanged="PenImage_SizeChanged"/>
                            </StackPanel>
                        </Button>
                        <Button x:Name="Eraser" Background="Transparent" Click="Eraser_Click">
                            <StackPanel>
                                <Image x:Name="EraserImage" Source="/Assets/eraser_normal.png" MaxWidth="100"/>
                            </StackPanel>
                        </Button>
                        <Button x:Name="Clear" Click="Clear_Click" Background="Transparent">
                            <StackPanel>
                                <Image Source="/Assets/clear_normal.png" MaxWidth="100"/>
                            </StackPanel>
                        </Button>
                    </StackPanel>
                </Border>
                <Border Grid.Row="2" BorderThickness="1" BorderBrush="LightGray" MinWidth="20">
                    <Button x:Name="Purchase" Click="Purchase_Click" Background="Transparent" VerticalAlignment="Center" HorizontalAlignment="Center">
                        <StackPanel>
                            <Image Source="/Assets/print_normal.png" MaxWidth="100"/>
                        </StackPanel>
                    </Button>
                </Border>
            </Grid>

        </Grid>

【参考资料】:
1、StackPanel height percentage within a grid?
2、How to get StackPanel’s children to fill maximum space downward?
3、WPF: How to display an image at its original size?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值