1

我有一个 WPF 窗口,其中包含一个简单的主页按钮布局、第一行按钮和一个视频源,但是当我最大化窗口时。布局与标准视图不同步。

我试图通过将图像元素设置为来纠正一些布局,stretch "fill"但顶行按钮看起来不统一,主页按钮也重新定位到屏幕中央,看起来不太好

我的问题是如何调整 xaml 布局属性以支持标准和最大化视图?

这是窗口的布局:

<Window x:Class="KinectKickboxingBVversion1.TrainingFrm"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="TrainingFrm" Height="377.612" Width="637.313" Loaded="Window_Loaded">

    <Grid>

        <StackPanel Orientation="Horizontal" >
            <Button x:Name="jabBtn" Background="BlueViolet"  Content="Jab" Width="100" Height="50" Click="jabBtn_Click" HorizontalAlignment="Center" VerticalAlignment="Top"/>
            <Button x:Name="crossBtn" Background="BlueViolet" Content="Cross" Width="100" Height="50" Click="crossBtn_Click" HorizontalAlignment="Center" VerticalAlignment="Top"/>
            <Button x:Name="jabCrossHookBtn" Background="BlueViolet" Content="Jab-Cross-Hook" Width="100" Height="50" Click="jabCrossHookBtn_Click" HorizontalAlignment="Center" VerticalAlignment="Top"/>
            <Button x:Name="pKickBtn" Content="Push Kick" Background="BlueViolet" Width="100" Height="50" Click="pKickBtn_Click" HorizontalAlignment=" Center" VerticalAlignment="Top"/>
            <Button x:Name="blockBtn"  Content="Kick Block" Background="BlueViolet" Width="100" Height="50" Click="blockBtn_Click" HorizontalAlignment=" Center" VerticalAlignment="Top"/>
            <Label Content="SCORE: " x:Name="lblScore" Visibility="Collapsed"/>
            <TextBlock x:Name="tblkScore" />
        </StackPanel>
        <Viewbox Grid.Row="1" Stretch="Uniform" HorizontalAlignment="Center">

            <Image x:Name="KinectVideo" Width="640" Height="250" Visibility="Visible" Stretch="Fill" /> 

        </Viewbox>


        <Button x:Name="homeBtn" Content="" Width="50" Click="homeBtn_Click" Height="35" Margin="272,294,277,10" >

            <Button.Background>
                <ImageBrush ImageSource="Images/ContentIcon.png" />
            </Button.Background>

        </Button>
    </Grid>
</Window> 

最大化时 当正常大小

4

2 回答 2

2

你的按钮都是固定大小的。StackPanel只是将它们彼此相邻,因此当您的屏幕尺寸较大时,您最终会在右侧留下空间。

与您的主页按钮相同。它通过绝对边距定位。

您可以通过为顶部按钮使用 6 个网格列并删除主页按钮上的边距并将其设置为HorizontalAlignment="Center" VerticalAlignment="Bottom".

但是,这仍然会导致按钮上的文本有效地变小。如果您希望显示器始终具有相同的比例,您可能更容易将整个东西简单地放在一个ViewBox.

于 2014-02-25T17:35:04.030 回答
0

使用网格而不是堆栈面板并将列宽设置为“*”并将您的按钮放在该网格中

于 2014-02-25T17:47:07.210 回答