Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.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
C# WPF适合窗口大小_C#_Wpf - Fatal编程技术网

C# WPF适合窗口大小

C# WPF适合窗口大小,c#,wpf,C#,Wpf,我是WPF的新手,我正在开发一个应用程序,其中包含不同的图像、文本框等。问题在于我的屏幕上,根据窗口的大小以及我在加载的窗口上设置的属性,一切看起来都正常: private void Window_Loaded(object sender, RoutedEventArgs e) { Width = System.Windows.SystemParameters.PrimaryScreenWidth; Height = System.Windows.

我是WPF的新手,我正在开发一个应用程序,其中包含不同的图像、文本框等。问题在于我的屏幕上,根据窗口的大小以及我在加载的窗口上设置的属性,一切看起来都正常:

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        Width = System.Windows.SystemParameters.PrimaryScreenWidth;
        Height = System.Windows.SystemParameters.PrimaryScreenHeight;
    }
在我的屏幕上使用应用程序时,它看起来如下所示:

但在平板电脑上使用时,我看不到日历,也看不到写着“Fecha Naciminto”的文字。以下是我正在使用的WPF代码:

<Window x:Class="BiometricoRegistro.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="RegistrarCliente"  Height="978" Width="1600" Loaded="Window_Loaded" WindowState="Maximized">
    <Grid>
        <Grid.Background>
            <ImageBrush ImageSource="Imagenes\home_bg.jpg"/>
        </Grid.Background>
        <TextBox x:Name="txtbRut" HorizontalAlignment="Left" Height="51" TextWrapping="Wrap" BorderBrush="Transparent" VerticalAlignment="Top" Width="379" Margin="30,230,0,0" FontSize="35" FontWeight="Bold" PreviewTextInput="txtbRut_PreviewTextInput">
            <TextBox.Background>
                <ImageBrush ImageSource="Imagenes\input.png"/>
            </TextBox.Background>
        </TextBox>
        <TextBox x:Name="txtbRutVer" HorizontalAlignment="Left" Height="51" TextWrapping="Wrap" BorderBrush="Transparent" VerticalAlignment="Top" Width="74" Margin="430,230,0,0" FontSize="35" FontWeight="Bold" TextAlignment="Center">
            <TextBox.Background>
                <ImageBrush ImageSource="Imagenes\input.png"/>
            </TextBox.Background>
        </TextBox>
        <TextBox x:Name="txtbNombre" HorizontalAlignment="Left" Height="51" TextWrapping="Wrap" BorderBrush="Transparent" VerticalAlignment="Top" Width="474" Margin="30,330,0,0" FontSize="35" FontWeight="Bold">
            <TextBox.Background>
                <ImageBrush ImageSource="Imagenes\input.png"/>
            </TextBox.Background>
        </TextBox>
        <TextBox x:Name="txtbApellido" HorizontalAlignment="Left" Height="51" TextWrapping="Wrap" BorderBrush="Transparent" VerticalAlignment="Top" Width="474" Margin="30,430,0,0" FontSize="35" FontWeight="Bold">
            <TextBox.Background>
                <ImageBrush ImageSource="Imagenes\input.png"/>
            </TextBox.Background>
        </TextBox>
        <TextBox x:Name="txtbEmail" HorizontalAlignment="Left" Height="51" TextWrapping="Wrap" BorderBrush="Transparent" VerticalAlignment="Top" Width="474" Margin="30,530,0,0" FontSize="35" FontWeight="Bold">
            <TextBox.Background>
                <ImageBrush ImageSource="Imagenes\input.png"/>
            </TextBox.Background>
        </TextBox>
        <Calendar x:Name="calendar" HorizontalAlignment="Left" Height="170" VerticalAlignment="Top" Width="260" Margin="0,720,0,57"/>
        <Button x:Name="btnRegistrar" Content="Registrar" HorizontalAlignment="Center" Height="118" VerticalAlignment="Center" Width="296" Margin="775,0,221,100" Click="btnRegistrar_Click"/>
        <ComboBox x:Name="cbPorcentaje" HorizontalAlignment="Left" Height="40" Margin="30,630,0,0" VerticalAlignment="Top" Width="230" HorizontalContentAlignment="Center" FontSize="35">
            <ComboBoxItem Content="A" FontSize="35"></ComboBoxItem>
            <ComboBoxItem Content="B" FontSize="35"></ComboBoxItem>
            <ComboBoxItem Content="C" FontSize="35"></ComboBoxItem>
        </ComboBox>
        <TextBlock HorizontalAlignment="Left" Height="37" Margin="30,176,0,0" TextWrapping="Wrap" Text="Rut cliente" VerticalAlignment="Top" Width="474" FontFamily="/BiometricoRegistro;component/Fonts/#Alex Brush" FontSize="36" Foreground="White"/>
        <TextBlock HorizontalAlignment="Left" Height="37" Margin="30,286,0,0" TextWrapping="Wrap" Text="Nombres cliente" VerticalAlignment="Top" Width="474" FontFamily="/BiometricoRegistro;component/Fonts/#Alex Brush" FontSize="36" Foreground="White"/>
        <TextBlock HorizontalAlignment="Left" Height="37" Margin="30,386,0,0" TextWrapping="Wrap" Text="Apellidos cliente" VerticalAlignment="Top" Width="474" FontFamily="/BiometricoRegistro;component/Fonts/#Alex Brush" FontSize="36" Foreground="White"/>
        <TextBlock HorizontalAlignment="Left" Height="37" Margin="30,486,0,0" TextWrapping="Wrap" Text="Email cliente" VerticalAlignment="Top" Width="474" FontFamily="/BiometricoRegistro;component/Fonts/#Alex Brush" FontSize="36" Foreground="White"/>
        <TextBlock HorizontalAlignment="Left" Height="37" Margin="30,586,0,0" TextWrapping="Wrap" Text="Tipo Descuento" VerticalAlignment="Top" Width="474" FontFamily="/BiometricoRegistro;component/Fonts/#Alex Brush" FontSize="36" Foreground="White"/>
        <TextBlock HorizontalAlignment="Left" Height="37" Margin="30,678,0,230" TextWrapping="Wrap" Text="Fecha nacimiento" VerticalAlignment="Top" Width="474" FontFamily="/BiometricoRegistro;component/Fonts/#Alex Brush" FontSize="36" Foreground="White"/>
        <TextBlock x:Name="txtResult" HorizontalAlignment="Left" Height="64" Margin="501,0,0,57" TextWrapping="Wrap" Text="" VerticalAlignment="Bottom" Width="823" FontSize="46" Foreground="Red" FontFamily="PMingLiU-ExtB"/>
    </Grid>
</Window>

  • 始终使用合适的面板。我更喜欢带分离器的船坞和堆垛面板
  • 将System.Windows.Window.SizeToContent分配给System.Windows.SizeToContent.Width和Height
  • 使用Resource Dictional确保页边距和其他值的一致性
  • 我不喜欢使用绝对位置。根据内容确定边距值

  • 控制窗口的位置是绝对的,所以你们不能在平板电脑上看到其中的一些。你应该使位置相对。所以在scrollViewer中添加网格,你可以向下滚动控件。你的意思是边距是绝对的?因为我的大多数控件都是HorizontalAlignment=“left”和VerticalAlignment=“top”如何使它们相对?@ffenix Try?@ffenix是的,边距是绝对的。而且,您还将所有控件放在一个
    网格
    的单元格中,因此您应该使用
    行定义
    列定义
    ,正如har07所说。谢谢您,我现在使用的是带有堆栈面板的停靠面板