WPF Fenster kleiner als in der Vorschau

  • WPF

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von iSteffen.

    WPF Fenster kleiner als in der Vorschau

    Hallo Forum,

    ich bin wirklich neu in WPF und etwas überfordert mit den einfachsten Themen. In meiner vorschau ist das Fenster genau so groß wie ich es möchte. Wenn ich es dann aber starte ist es zu klein.

    Hier mal zwei Bilder:

    So wie es aussehen soll im Designer (also richtig):

    uploaded gratis account

    So wie es in echt aussieht (Falsch):


    Es geht also darum das es z.B. Rechts einfach abgeschnitten ist und der ganze untere Bereich ist komplett weg. Mit Max/Minimal Höhe/breite habe ich es schon versucht.

    Gruß
    Steffen
    Hast Du mal den XAML-Code?

    btw: Bilder solltest Du forenintern über [+ Erweiterte Antwort] -> _|Dateianhänge|_ -> [Hochladen] posten. Nicht wenige (Power)User hier klicken ungern auf ImageHosterLinks und stellen stattdessen die Hilfe hier im Thread ein bzw. fangen gar nicht erst mit Hilfe an. Deine Entscheidung.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed Danke für die Info mit den Bilder, mach ich besser das nächste mal :)

    Hier ist mein Code. Ich habe es nicht als Grid gelöst da ich es einfach nicht hinbekommen habe den Rechten blauen Streifen zu erstellen und dann noch ein Bild reinzumachen.

    XML-Quellcode

    1. ​<Window x:Class="MainWindow"
    2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    6. xmlns:local="clr-namespace:WpfApp2"
    7. mc:Ignorable="d"
    8. Title="Tool" Height="564" Width="1029" ResizeMode="NoResize" MaxWidth="1029" MinWidth="1029" MinHeight="7" Background="White">
    9. <Window.Resources>
    10. <ResourceDictionary Source="Styles.xaml"/>
    11. </Window.Resources>
    12. <Canvas Margin="0,0,0,0">
    13. <Border Background="White" BorderBrush="#FFA6A6A6" BorderThickness="2" Height="206" Canvas.Left="10" Canvas.Top="78" Width="460">
    14. <StackPanel Margin="0,0,0,0" Grid.RowSpan="2">
    15. <Label x:Name="label" Margin="5,3,0,0" Content="Support" FontFamily="Mentone Reg" FontSize="28" FontWeight="Normal" Foreground="#FFA6A6A6" Height="Auto" Width="Auto"/>
    16. <Button Content="Hallo" Padding="10,0" Margin="10,0,10,0"/>
    17. <Button Content="Hallo2" Padding="10,0" Margin="10,8,10,0"/>
    18. <Button Content="Hallo3" Padding="10,0" Margin="10,8,10,0"/>
    19. </StackPanel>
    20. </Border>
    21. <Border Background="White" BorderBrush="#FFA6A6A6" BorderThickness="2" Height="206" Canvas.Left="495" Canvas.Top="78" Width="460">
    22. <StackPanel Margin="0,0,0,0" Grid.RowSpan="2">
    23. <Label x:Name="label2" Margin="5,3,0,0" Content="Support" FontFamily="Mentone Reg" FontSize="28" FontWeight="Normal" Foreground="#FFA6A6A6" Height="Auto" Width="Auto"/>
    24. <Button Content="Hallo" Padding="10,0" Margin="10,0,10,0"/>
    25. <Button Content="Hallo2" Padding="10,0" Margin="10,8,10,0"/>
    26. <Button Content="Hallo3" Padding="10,0" Margin="10,8,10,0"/>
    27. </StackPanel>
    28. </Border>
    29. <Border Background="White" BorderBrush="#FFA6A6A6" BorderThickness="2" Height="199" Canvas.Left="10" Canvas.Top="323" Width="460">
    30. <StackPanel Margin="0,0,0,0" Grid.RowSpan="2">
    31. <Label x:Name="label3" Margin="5,3,0,0" Content="Support" FontFamily="Mentone Reg" FontSize="28" FontWeight="Normal" Foreground="#FFA6A6A6" Height="Auto" Width="Auto"/>
    32. <Button Content="Hallo" Padding="10,0" Margin="10,0,10,0"/>
    33. <Button Content="Hallo2" Padding="10,0" Margin="10,8,10,0"/>
    34. <Button Content="Hallo3" Padding="10,0" Margin="10,8,10,10"/>
    35. </StackPanel>
    36. </Border>
    37. <Border Background="White" BorderBrush="#FFA6A6A6" BorderThickness="2" Height="199" Canvas.Left="495" Canvas.Top="323" Width="460">
    38. <StackPanel Margin="0,0,0,0" Grid.RowSpan="2">
    39. <Label x:Name="label4" Margin="5,3,0,0" Content="Support" FontFamily="Mentone Reg" FontSize="28" FontWeight="Normal" Foreground="#FFA6A6A6" Height="Auto" Width="Auto"/>
    40. <Button Content="Hallo" Padding="10,0" Margin="10,0,10,0"/>
    41. <Button Content="Hallo2" Padding="10,0" Margin="10,8,10,0"/>
    42. <Button Content="Hallo" Padding="10,0" Margin="10,8,10,10"/>
    43. </StackPanel>
    44. </Border>
    45. <Image Source="/Resources/VisionmaxX-Logo.png" Stretch="None" Width="329" Height="44" Canvas.Left="621" Canvas.Top="13"/>
    46. <Rectangle Width="50" Height="548" Canvas.Left="979">
    47. <Rectangle.Fill>
    48. <LinearGradientBrush StartPoint="0,0" EndPoint="1,1" >
    49. <GradientStop Color="#00305d" Offset="0." />
    50. <GradientStop Color="#ffffff" Offset="1.0" />
    51. </LinearGradientBrush>
    52. </Rectangle.Fill>
    53. </Rectangle>
    54. <Label Content="Internet: " FontFamily="Mentone Reg" FontSize="15" FontWeight="Normal" Foreground="#FFA6A6A6" Height="234" Width="485" Canvas.Top="522" Canvas.Left="10"/>
    55. <Label Content="https://WEBSEITE.net" FontFamily="Mentone Reg" FontSize="15" FontWeight="Normal" Foreground="#00305d" Height="234" Width="485" Canvas.Top="522" Canvas.Left="68"/>
    56. <Image x:Name="image" Height="110" Canvas.Left="923" Canvas.Top="370" Width="162" Source="/Resources/Bild.png" RenderTransformOrigin="0.5,0.5" Stretch="None">
    57. <Image.RenderTransform>
    58. <TransformGroup>
    59. <ScaleTransform/>
    60. <SkewTransform/>
    61. <RotateTransform Angle="-90"/>
    62. <TranslateTransform/>
    63. </TransformGroup>
    64. </Image.RenderTransform>
    65. <Image.OpacityMask>
    66. <ImageBrush Stretch="None" TileMode="None" ImageSource="/Resources/Bild.png"/>
    67. </Image.OpacityMask>
    68. </Image>
    69. </Canvas>
    70. </Window>
    Uiuiui, das ist kein Wunder, dass da was abgeschnitten wird. Absolutpositionsangaben in der WPF sind jetzt nicht so dolle. Da eine Window-Größenänderung nicht vorgesehen ist, ist das jetzt zwar nicht sonderlich nutzerfreundlich, aber Deine Entscheidung. Das übergroße Label unten mit der Website ragt eh raus. Und da sich zur Designzeit und zur Laufzeit die Größen etwas unterschieden, wird das nix. Warum eigentlich Canvas? Ein passender Layout-Container wie ein Grid oder Stackpanel sollte es schon sein.
    Auch ist die Wiederholung der Boxen ein Zeichen dafür, dass sowas in ein UserControl sollte.

    ##########

    probier mal:
    Spoiler anzeigen

    XML-Quellcode

    1. <Grid>
    2. <Grid>
    3. <Grid.ColumnDefinitions>
    4. <ColumnDefinition Width="80*"/>
    5. <ColumnDefinition Width="400*"/>
    6. <ColumnDefinition Width="500*"/>
    7. <ColumnDefinition Width="50*"/>
    8. </Grid.ColumnDefinitions>
    9. <Grid.RowDefinitions>
    10. <RowDefinition Height="10*"/>
    11. <RowDefinition Height="10*"/>
    12. <RowDefinition Height="1*"/>
    13. </Grid.RowDefinitions>
    14. <Border Background="White" BorderBrush="#FFA6A6A6" BorderThickness="2" Height="206" Width="460" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Margin="14,24,13,25">
    15. <StackPanel Margin="0,0,0,0" Grid.RowSpan="2">
    16. <Label x:Name="label" Margin="5,3,0,0" Content="Support" FontFamily="Mentone Reg" FontSize="28" FontWeight="Normal" Foreground="#FFA6A6A6" Height="Auto" Width="Auto"/>
    17. <Button Content="Hallo" Padding="10,0" Margin="10,0,10,0"/>
    18. <Button Content="Hallo2" Padding="10,0" Margin="10,8,10,0"/>
    19. <Button Content="Hallo3" Padding="10,0" Margin="10,8,10,0"/>
    20. </StackPanel>
    21. </Border>
    22. <Border Background="White" BorderBrush="#FFA6A6A6" BorderThickness="2" Height="206" Width="460" Grid.Column="2" Grid.Row="0" Margin="13,24,14,25">
    23. <StackPanel Margin="0,0,0,0" Grid.RowSpan="2">
    24. <Label x:Name="label2" Margin="5,3,0,0" Content="Support" FontFamily="Mentone Reg" FontSize="28" FontWeight="Normal" Foreground="#FFA6A6A6" Height="Auto" Width="Auto"/>
    25. <Button Content="Hallo" Padding="10,0" Margin="10,0,10,0"/>
    26. <Button Content="Hallo2" Padding="10,0" Margin="10,8,10,0"/>
    27. <Button Content="Hallo3" Padding="10,0" Margin="10,8,10,0"/>
    28. </StackPanel>
    29. </Border>
    30. <Border Background="White" BorderBrush="#FFA6A6A6" BorderThickness="2" Height="199" Width="460" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2" Margin="14,28,13,28">
    31. <StackPanel Margin="0,0,0,0" Grid.RowSpan="2">
    32. <Label x:Name="label3" Margin="5,3,0,0" Content="Support" FontFamily="Mentone Reg" FontSize="28" FontWeight="Normal" Foreground="#FFA6A6A6" Height="Auto" Width="Auto"/>
    33. <Button Content="Hallo" Padding="10,0" Margin="10,0,10,0"/>
    34. <Button Content="Hallo2" Padding="10,0" Margin="10,8,10,0"/>
    35. <Button Content="Hallo3" Padding="10,0" Margin="10,8,10,10"/>
    36. </StackPanel>
    37. </Border>
    38. <Border Background="White" BorderBrush="#FFA6A6A6" BorderThickness="2" Height="199" Width="460" Grid.Column="2" Grid.Row="1" Margin="13,28,14,28">
    39. <StackPanel Margin="0,0,0,0" Grid.RowSpan="2">
    40. <Label x:Name="label4" Margin="5,3,0,0" Content="Support" FontFamily="Mentone Reg" FontSize="28" FontWeight="Normal" Foreground="#FFA6A6A6" Height="Auto" Width="Auto"/>
    41. <Button Content="Hallo" Padding="10,0" Margin="10,0,10,0"/>
    42. <Button Content="Hallo2" Padding="10,0" Margin="10,8,10,0"/>
    43. <Button Content="Hallo" Padding="10,0" Margin="10,8,10,10"/>
    44. </StackPanel>
    45. </Border>
    46. <Rectangle Width="50" Height="548" Grid.Column="3" Grid.RowSpan="3" Margin="0,0,-1,-13">
    47. <Rectangle.Fill>
    48. <LinearGradientBrush StartPoint="0,0" EndPoint="1,1" >
    49. <GradientStop Color="#00305d" Offset="0." />
    50. <GradientStop Color="#ffffff" Offset="1.0" />
    51. </LinearGradientBrush>
    52. </Rectangle.Fill>
    53. </Rectangle>
    54. <Label Content="Internet: " FontFamily="Mentone Reg" FontSize="15" FontWeight="Normal" Foreground="#FFA6A6A6" Grid.Row="2"/>
    55. <Label Content="https://WEBSEITE.net" Grid.Row="2" Grid.Column="1" FontFamily="Mentone Reg" FontSize="15" FontWeight="Normal" Foreground="#00305d" />
    56. </Grid>

    Einige Images hab ich aus 2 Gründen gelöscht: Weil ich die Styles.xaml nicht habe und damit Du was zum Üben hast :D
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „VaporiZed“ ()

    Es tut mir leid das ich das ganze Thema jetzt noch mal aufmachen muss. Ich bin aber am Verzweifeln! Ich verstehe diese WPF einfach nicht, in meiner kleinen Windows Forms Welt war alles Perfekt :(

    Habe mein Code jetzt auf das nötigste runter gebrochen und immer noch wird mir zwar im Visual Studio Designer das Fenster in der Richtigen größe angezeigt. Wenn ich es aber ausführe, wird oben und rechtes was ausgeblendet. Ja ich kann mein Fenster größerer ziehen und sehe es dann auch. Warum aber nicht gleich beim Start?

    Anbei noch mal zwei Bilder (im Anhang ;) )

    Und hier mein Code:

    XML-Quellcode

    1. ​<Window x:Class="MainWindow"
    2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    6. xmlns:local="clr-namespace:WpfApp2"
    7. mc:Ignorable="d"
    8. Background="White"
    9. Title="VM-Support-Tool" Height="548" Width="950">
    10. <Window.Resources>
    11. <ResourceDictionary Source="Styles.xaml"/>
    12. </Window.Resources>
    13. <Grid>
    14. <Grid.RowDefinitions>
    15. <RowDefinition Height="80"/>
    16. <RowDefinition />
    17. <RowDefinition />
    18. <RowDefinition/>
    19. </Grid.RowDefinitions>
    20. <Grid.ColumnDefinitions>
    21. <ColumnDefinition Width="450"/>
    22. <ColumnDefinition Width="450"/>
    23. <ColumnDefinition Width="50"/>
    24. </Grid.ColumnDefinitions>
    25. <!-- Leiste Rechts-->
    26. <Rectangle Grid.RowSpan="4" Grid.Column="2" HorizontalAlignment="Right" Width="50" Margin="0,0,0,0">
    27. <Rectangle.Fill>
    28. <LinearGradientBrush StartPoint="0,0" EndPoint="1,1" >
    29. <GradientStop Color="#00305d" Offset="0." />
    30. <GradientStop Color="#ffffff" Offset="1.0" />
    31. </LinearGradientBrush>
    32. </Rectangle.Fill>
    33. </Rectangle>
    34. </Grid>
    35. </Window>
    Bilder
    • Designer Vorschau.PNG

      53,77 kB, 1.028×614, 72 mal angesehen
    • Abgeschnitten.PNG

      19,52 kB, 956×557, 71 mal angesehen
    Weil du wieder überall Absolutangaben hast. Das ist zudem auch extrem Userunfeundlich. Aber das hat @VaporiZed bereits geschrieben.
    Was genau soll das überhaupt werden das du absolute angaben nutzen möchtest? Hast du das Programm schon mit WindowForms fertig und möchtest das in WPF umsetzen? Da wäre mal ein Screenshot hilfreich.
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.
    Wenn ich dem XAML-Code übertrage, wird bei mir in VS2019 auch schon zur Designzeit ein Teil des Balkens abgeschnitten. Zur Laufzeit kommt dann noch der Fensterrahmen, der den Platz für den Content noch weiter einschränkt. Dein Layoutvorgehen ist nicht gerade optimal. Wenn Dir der Balken wichtig ist, könntest Du es so machen:

    XML-Quellcode

    1. <Grid.ColumnDefinitions>
    2. <ColumnDefinition Width="*"/>
    3. <ColumnDefinition Width="*"/>
    4. <ColumnDefinition Width="50"/>
    5. </Grid.ColumnDefinitions>
    Dann sind die ersten beiden Spalten immer genauso breit und die letzte ist 50 Einheiten breit. Die ersten Spalten nehmen dann soviel Platz ein wie die letzte noch übrig lässt.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.