用户单击后Wpf视图大小调整大小

时间:2015-01-24 13:03:42

标签: c# .net wpf user-interface

我有一个视窗框在Windows加载后调整大小。加载完成后,当我单击窗口中的某个位置或调整窗口大小时,窗口会调整大小:

<Viewbox Grid.Column="0" Stretch="Fill" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="5, 5, 5, 5">
                    <Grid Background="White">
                            <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="1*" />
                                    <ColumnDefinition Width="5*"  MinWidth="150" />
                                    <ColumnDefinition Width="4*"  MinWidth="150" />
                            </Grid.ColumnDefinitions>

                            <Image x:Name="ImgTwitterUserPhoto" HorizontalAlignment="Left" Grid.Column="0" MaxWidth="150" MaxHeight="150" Margin="10, 10, 10, 10"
                                           VerticalAlignment="Top"/>

                            <Grid  Grid.Column="1" SnapsToDevicePixels="True" Background="White">

                                    <Grid.RowDefinitions>
                                            <RowDefinition Height="10*"></RowDefinition>
                                            <RowDefinition Height="10*"></RowDefinition>
                                            <RowDefinition Height="80*"></RowDefinition>
                                    </Grid.RowDefinitions>

                                    <Label x:Name="LblTwitterUserName" Content="" HorizontalAlignment="Left"
                                           VerticalAlignment="Top" Grid.Row="0"
                                           FontFamily="Segoe UI Light" FontSize="20"/>
                                    <Label x:Name="LblTwitterUserHandle" Content="" HorizontalAlignment="Left"
                                           VerticalAlignment="Top" FontSize="12"
                                           FontFamily="Segoe UI Semibold" Grid.Row="1"
                                           Foreground="#FF8B8888" Opacity="0.8"/>
                            </Grid>


                    </Grid>
            </Viewbox>

1 个答案:

答案 0 :(得分:0)

我发现了奇怪的行为:

在主窗口(父控件)中,我们有这个选项:SizeToContent =“WidthAndHeight”

在第一次用户交互中,主窗口确保所有控件都遵循该属性。因此,控件的宽度和高度都会调整大小。问题是控件在用户交互后调整大小,可能是因为内部控件的长宽比要保持不变,或视图框中的内容与容器大小有关。

解决方案是仅使用Width替换WidthAndHeight,因为调整大小来自垂直维度。