Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
最简单的跨分辨率应用程序和自适应UI构建。Can';我不能在WPF中这样做_Wpf_User Interface_Resolution - Fatal编程技术网

最简单的跨分辨率应用程序和自适应UI构建。Can';我不能在WPF中这样做

最简单的跨分辨率应用程序和自适应UI构建。Can';我不能在WPF中这样做,wpf,user-interface,resolution,Wpf,User Interface,Resolution,目前正在尝试构建最简单的跨分辨率应用程序(换句话说,是一个自适应UI)。应用程序本身的最低分辨率为1024x768,最高分辨率为1920x1080。 然而,我没有成功地做到这一点 这是1024x768窗口,一切看起来都很好 这是1920x1080窗口,控制“游泳”。然而,pic适应了分辨率 <Window x:Class="WpfApplication2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xam

目前正在尝试构建最简单的跨分辨率应用程序(换句话说,是一个自适应UI)。应用程序本身的最低分辨率为1024x768,最高分辨率为1920x1080。 然而,我没有成功地做到这一点

这是1024x768窗口,一切看起来都很好

这是1920x1080窗口,控制“游泳”。然而,pic适应了分辨率

<Window x:Class="WpfApplication2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WpfApplication2"
    mc:Ignorable="d"
    Title="MainWindow" Height="768" Width="1024"  MinHeight="768" MinWidth="1024" MaxHeight="1080" MaxWidth="1920">

<Grid  ShowGridLines="True">
    <Grid.RowDefinitions>
        <RowDefinition Height="80*"/>
        <RowDefinition Height="512*"/>
        <RowDefinition Height="160*"/>
    </Grid.RowDefinitions>
    <GroupBox x:Name="groupBox_Copy" Header="Truck2" Height="148" VerticalAlignment="Top" Margin="430,503.6,468.6,0" Grid.Row="1" Grid.RowSpan="2">
        <Button x:Name="button_Copy" Content="Start" HorizontalAlignment="Left" Margin="20,13,0,0" VerticalAlignment="Top" Width="75" RenderTransformOrigin="0.245,-0.667"/>
    </GroupBox>
    <GroupBox x:Name="groupBox_Copy1" Header="Truck3" Height="148" VerticalAlignment="Top" Margin="752,503.6,146.6,0" Grid.Row="1" Grid.RowSpan="2">
        <Button x:Name="button_Copy1" Content="Start" HorizontalAlignment="Left" Margin="20,13,0,0" VerticalAlignment="Top" Width="75" RenderTransformOrigin="0.245,-0.667"/>
    </GroupBox>
    <GroupBox x:Name="groupBox_Copy2" Header="Truck1" Height="148" VerticalAlignment="Top" Margin="148,503.6,750.6,0" Grid.Row="1" Grid.RowSpan="2">
        <Button x:Name="button" Content="Start" HorizontalAlignment="Left" Margin="20,13,0,0" VerticalAlignment="Top" Width="75" RenderTransformOrigin="0.245,-0.667"/>
    </GroupBox>
    <Image x:Name="image"  Grid.Row="1"  Source="Resources/truck.png"/>
</Grid>

1024x768。

1920x1080。 看起来好多了。但是,控件“游动”到左方向。可以看出

<Window x:Class="WpfApplication2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WpfApplication2"
    mc:Ignorable="d"
    Title="MainWindow" Height="768" Width="1024"  MinHeight="768" MinWidth="1024" MaxHeight="1080" MaxWidth="1920">

<Grid  ShowGridLines="True">
    <Grid.RowDefinitions>
        <RowDefinition Height="80*"/>
        <RowDefinition Height="512*"/>
        <RowDefinition Height="160*"/>
    </Grid.RowDefinitions>
    <Image x:Name="image"  Grid.Row="1"  Source="Resources/truck.png"/>
    <Grid HorizontalAlignment="Left" Height="138" Margin="10,9.6,0,0" Grid.Row="2" VerticalAlignment="Top" Width="998">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="125*"/>
            <ColumnDefinition Width="143*"/>
            <ColumnDefinition Width="147*"/>
            <ColumnDefinition Width="143*"/>
            <ColumnDefinition Width="171*"/>
            <ColumnDefinition Width="143*"/>
            <ColumnDefinition Width="120*"/>
        </Grid.ColumnDefinitions>
        <GroupBox x:Name="GroupBox1" Grid.Column="1" Header="Truck1" Background="SeaShell" Grid.ColumnSpan="2" Margin="0.4,0,147.6,0">
            <Button x:Name="button_Copy2" Content="Start" HorizontalAlignment="Left" Margin="59,23,-2,0" VerticalAlignment="Top" Width="75" RenderTransformOrigin="-1.211,-0.299"/>
        </GroupBox>
        <GroupBox x:Name="GroupBox2" Grid.Column="3" Header="Truck2" Background="SeaShell" Grid.ColumnSpan="2" Margin="0.4,0,171.6,0">
            <Button x:Name="button_Copy" Content="Start" HorizontalAlignment="Left" Margin="59,23,-2,0" VerticalAlignment="Top" Width="75" RenderTransformOrigin="-1.211,-0.299"/>
        </GroupBox>
        <GroupBox x:Name="GroupBox3" Grid.Column="5" Header="Truck3" Background="SeaShell" Grid.ColumnSpan="2" Margin="0.4,0,120.4,0">
            <Button x:Name="button_Copy1" Content="Start" HorizontalAlignment="Left" Margin="59,23,-2,0" VerticalAlignment="Top" Width="75"/>
        </GroupBox>
    </Grid>
</Grid>


在非自适应模式下通过固定页边距进行布局。使用嵌套面板没有任何错误:

UniformGrid
可以为每个子元素(GroupBox)安排相等的空间



添加Grid.column定义,并将每个GroupBox放在单独的列中。通过固定<代码>空白> /代码> s在不自适应(如您已经看到的)中考虑使用<代码>统一网格< /COD>考虑在哪里添加网格。到主网格的下一排?是的,当然。你们不会相信我的,不过,我已经试过了。并没有成功。在从工具栏中删除控件后,设计师添加了边距,它们弄乱了整个布局。WPF中的自适应布局主要是通过使用正确的面板(网格、StackPanel、WrapPanel、UniformGrid和画布)实现的——它们以不同的方式排列元素。此外,正确的水平/垂直对齐也很重要。将
HorizontalAlignment=“Left”
Width=“998”
从网格中删除,将会有显著的改进。上帝啊,我失去了上次的改进。目前还不知道我做了什么来让事情变得更好谁发明了WPF?根本没有逻辑…只有实验。。。
<Grid ShowGridLines="True">
    <Grid.RowDefinitions>
        <RowDefinition Height="80*"/>
        <RowDefinition Height="512*"/>
        <RowDefinition Height="160*"/>
    </Grid.RowDefinitions>

    <UniformGrid Rows="1" Grid.Row="2">
        <GroupBox x:Name="groupBox_Copy" Header="Truck2" Height="148" VerticalAlignment="Top">
            <Button x:Name="button_Copy" Content="Start" HorizontalAlignment="Left" Margin="20,13,0,0" VerticalAlignment="Top" Width="75"/>
        </GroupBox>
        <GroupBox x:Name="groupBox_Copy1" Header="Truck3" Height="148" VerticalAlignment="Top">
            <Button x:Name="button_Copy1" Content="Start" HorizontalAlignment="Left" Margin="20,13,0,0" VerticalAlignment="Top" Width="75"/>
        </GroupBox>
        <GroupBox x:Name="groupBox_Copy2" Header="Truck1" Height="148" VerticalAlignment="Top">
            <Button x:Name="button" Content="Start" HorizontalAlignment="Left" Margin="20,13,0,0" VerticalAlignment="Top" Width="75"/>
        </GroupBox>
    </UniformGrid>

    <Image x:Name="image" Grid.Row="1" Source="Resources/truck.png"/>
</Grid>