Wie kann ich mein Programm maximieren, aber so, dass es wirklich maximiert ist?

  • WPF

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Lukas.

    Wie kann ich mein Programm maximieren, aber so, dass es wirklich maximiert ist?

    Hey-ho.

    Ich wollte mal fragen, wie ich mein Programm maximieren kann, sodass es auch wirklich maximiert ist.
    Bisher ist das hier, alles was ich bis jetzt hingekriegt habe.
    Ich bin ein voelliger Neuling in Sachen WPF und bin noch am Ueben ^^



    Vielen Dank fuer eure Hilfe ^^

    EDIT:

    Code:
    XAML:
    Spoiler anzeigen

    XML-Quellcode

    1. <Window x:Name="MainWindow" 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:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
    5. Title="MainWindow" Height="600" Width="800" AllowsTransparency="True" WindowStyle="None" Background="Transparent">
    6. <Grid>
    7. <Rectangle Fill="#FF9B9B9B" HorizontalAlignment="Left" Height="600" Stroke="Black" VerticalAlignment="Top" Width="800" RadiusX="15" RadiusY="15">
    8. <Rectangle.Effect>
    9. <DropShadowEffect/>
    10. </Rectangle.Effect>
    11. </Rectangle>
    12. <Rectangle x:Name="ControlBox" Fill="#FF1D1D1D" HorizontalAlignment="Left" Height="29" Stroke="Black" VerticalAlignment="Top" Width="800">
    13. <Rectangle.Effect>
    14. <DropShadowEffect/>
    15. </Rectangle.Effect>
    16. </Rectangle>
    17. <Button x:Name="CloseBtn" Content="" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="15" Height="15" BorderBrush="Transparent" SnapsToDevicePixels="True" RenderTransformOrigin="0.5,0.5">
    18. <Button.RenderTransform>
    19. <TransformGroup>
    20. <ScaleTransform/>
    21. <SkewTransform/>
    22. <RotateTransform Angle="360"/>
    23. <TranslateTransform/>
    24. </TransformGroup>
    25. </Button.RenderTransform>
    26. <Button.OpacityMask>
    27. <ImageBrush ImageSource="C:\Users\Simon\Pictures\Windows8Icons\Window_Controls\close_window\close_window-26.png"/>
    28. </Button.OpacityMask>
    29. <Button.Background>
    30. <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
    31. <GradientStop Color="#FFF3F3F3" Offset="0"/>
    32. <GradientStop Color="#FFEBEBEB"/>
    33. <GradientStop Color="#FFDDDDDD"/>
    34. <GradientStop Color="Red" Offset="1"/>
    35. </LinearGradientBrush>
    36. </Button.Background>
    37. </Button>
    38. <Button x:Name="MaximizeBtn" Content="" HorizontalAlignment="Left" Margin="35, 5, 0, 0" VerticalAlignment="Top" Width="15" Height="15" BorderBrush="Transparent">
    39. <Button.OpacityMask>
    40. <ImageBrush ImageSource="C:\Users\Simon\Pictures\Windows8Icons\Window_Controls\maximize_window\maximize_window-26.png"/>
    41. </Button.OpacityMask>
    42. <Button.Background>
    43. <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
    44. <GradientStop Color="#FFF7CA00" Offset="0.654"/>
    45. <GradientStop Color="White" Offset="0.013"/>
    46. <GradientStop Color="#FFFBE892" Offset="0.126"/>
    47. <GradientStop Color="#FFFBE895" Offset="0.061"/>
    48. </LinearGradientBrush>
    49. </Button.Background>
    50. </Button>
    51. <Button x:Name="MinimizeBtn" Content="" HorizontalAlignment="Left" Margin="55, 5, 0, 0" VerticalAlignment="Top" Width="15" Height="15" BorderBrush="Transparent">
    52. <Button.OpacityMask>
    53. <ImageBrush ImageSource="C:\Users\Simon\Pictures\Windows8Icons\Window_Controls\minimize_window\minimize_window-26.png"/>
    54. </Button.OpacityMask>
    55. <Button.Background>
    56. <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
    57. <GradientStop Color="#FF51FD00" Offset="1"/>
    58. <GradientStop Color="White"/>
    59. <GradientStop Color="#FF50FF00" Offset="0.398"/>
    60. <GradientStop Color="#FF98FF69" Offset="0.307"/>
    61. <GradientStop Color="#FF8EFF5B" Offset="0.273"/>
    62. </LinearGradientBrush>
    63. </Button.Background>
    64. </Button>
    65. <TextBlock x:Name="WindowTitle" HorizontalAlignment="Left" Margin="333,0,0,0" TextWrapping="Wrap" Text="Batch Editor v2 © Beatsleigher" VerticalAlignment="Top">
    66. <TextBlock.Foreground>
    67. <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
    68. <GradientStop Color="White"/>
    69. <GradientStop Color="#FF00FFF3" Offset="1"/>
    70. </LinearGradientBrush>
    71. </TextBlock.Foreground>
    72. </TextBlock>
    73. <Menu HorizontalAlignment="Left" Height="24" Margin="0,29,0,0" VerticalAlignment="Top" Width="800">
    74. <MenuItem Header="Background Colour">
    75. <MenuItem x:Name="ChangeBackColour" Header="Change"/>
    76. <MenuItem x:Name="ResetBackColour" Header="Reset"/>
    77. </MenuItem>
    78. <MenuItem Header="Text Colour">
    79. <MenuItem x:Name="ChangeForeColour" Header="Change"/>
    80. <MenuItem x:Name="ResetForeColour" Header="Reset"/>
    81. </MenuItem>
    82. <MenuItem Header="Text Font">
    83. <MenuItem x:Name="ChangeFont" Header="Change"/>
    84. </MenuItem>
    85. <MenuItem Header="Syntax">
    86. <MenuItem x:Name="HighlightSyntax" Header="Highlight Syntax" IsCheckable="True" IsChecked="False"/>
    87. </MenuItem>
    88. <Separator/>
    89. <Separator/>
    90. <Separator/>
    91. <Separator/>
    92. <Separator/>
    93. <Separator/>
    94. <Separator/>
    95. <Separator/>
    96. <Separator/>
    97. <Separator/>
    98. <Separator/>
    99. <MenuItem Header="File" StaysOpenOnClick="True">
    100. <MenuItem x:Name="OpenFile" Header="Open"/>
    101. <MenuItem x:Name="SaveFile" Header="Save"/>
    102. <MenuItem x:Name="SaveFileAs" Header="Save As..."/>
    103. <MenuItem x:Name="ExitProg" Header="Exit"/>
    104. </MenuItem>
    105. <MenuItem Header="Script">
    106. <MenuItem x:Name="StartScript" Header="Start Script"/>
    107. <MenuItem x:Name="DebugScript" Header="Debug Script"/>
    108. </MenuItem>
    109. <MenuItem Header="About">
    110. <MenuItem Header="Donate">
    111. <MenuItem x:Name="DonateGFM" Header="Via GoFundMe.com"/>
    112. <MenuItem x:Name="DonatePayPal" Header="Via PayPal"/>
    113. </MenuItem>
    114. <MenuItem x:Name="AboutProg" Header="About Batch Editor v2"/>
    115. </MenuItem>
    116. </Menu>
    117. <Rectangle Fill="#FF9B9B9B" HorizontalAlignment="Left" Height="537" Margin="12,53,0,0" RadiusY="15" RadiusX="15" VerticalAlignment="Top" Width="777"/>
    118. <WindowsFormsHost x:Name="WinFormHost" Margin="35,90,35,10">
    119. <wf:RichTextBox x:Name="Edit" Width="120" Height="120" BackColor="White" ForeColor="Black" Text="@Echo off" Dock="Fill"/>
    120. </WindowsFormsHost>
    121. </Grid>
    122. </Window>


    VB:

    VB.NET-Quellcode

    1. Private Sub MaximizeBtn_Click(sender As Object, e As RoutedEventArgs) Handles MaximizeBtn.Click
    2. If Not MyBase.WindowState = Windows.WindowState.Maximized Then
    3. MyBase.WindowState = Windows.WindowState.Maximized
    4. Dim img As BitmapImage = New BitmapImage
    5. img.BeginInit()
    6. img.UriSource = New Uri(fileLocation & "restore_window-26.png", UriKind.RelativeOrAbsolute)
    7. img.EndInit()
    8. Dim _img As Image = New Image
    9. _img.Stretch = Stretch.Fill
    10. img.UriSource = New Uri(fileLocation & "restore_window-26.png")
    11. MaximizeBtn.Content = _img
    12. MaximizeBtn.OpacityMask = New ImageBrush(img)
    13. Else
    14. MyBase.WindowState = Windows.WindowState.Normal
    15. Dim img As BitmapImage = New BitmapImage
    16. img.BeginInit()
    17. img.UriSource = New Uri(fileLocation & "maximize_window-26.png", UriKind.RelativeOrAbsolute)
    18. img.EndInit()
    19. Dim _img As Image = New Image
    20. _img.Stretch = Stretch.Fill
    21. img.UriSource = New Uri(fileLocation & "maximize_window-26.png")
    22. MaximizeBtn.Content = _img
    23. MaximizeBtn.OpacityMask = New ImageBrush(img)
    24. End If
    25. End Sub

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Beatsleigher“ ()

    Was verstehst du unter "wirklich maximiert"?
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Dann könnte da was bei deinem Layout schiefgelaufen sein. Würd ich mal vermuten.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.

    Lukas schrieb:

    könnte da was bei deinem Layout schiefgelaufen sein

    Was könnte da denn schief laufen?
    Obwohl irgendwo muss da ja etwas falsch laufen.

    @Beatsleigher: Kannst ja mal versuchen dein Code hier zu posten.
    Kürz alles raus was zu 100% nichts damit zu tun haben könnte.

    Eistee schrieb:

    Lukas schrieb:

    könnte da was bei deinem Layout schiefgelaufen sein

    Was könnte da denn schief laufen?
    Obwohl irgendwo muss da ja etwas falsch laufen.

    @Beatsleigher: Kannst ja mal versuchen dein Code hier zu posten.
    Kürz alles raus was zu 100% nichts damit zu tun haben könnte.

    Jo. Wird gemacht
    Ich kann dir den Grund nennen. Der Grund ist, dass keiner auf Leute hört die Erfahrung mit WPF haben. WPF ist KEIN Winforms. Jedes mal predige ich, dass man in WPF nicht den Designer verwenden darf sondern auch wirklich alles selbst in XAML Coden soll. Der Designer generiert keinen schönen XAML-Code. Den kannste höchstens verwenden, um ne Art Skizze zu machen. Mal schnell paar Dinge herumziehen. Schauen wie es da und da aussieht. Bisschen Farben anpassen etc. Jedoch die GUI mit dem Designer designen geht zu 100% in die Hose und das ist auch der Grund weshalb das niemand so macht. Natürlich kannst du das Eigenschaften Fenster verwenden. Nur nicht Drag and Drop etc. bei der GUI an sich.
    Denn genau dann bekommst du so absurde Dinge wie du hast. Du hast nahezu ausschließlich absolute Größen. Das heißt überall total abstruse Margin Angaben, jede Menge Width und Height angaben etc.
    Wenn du Width 100 setzt, dann brauchst du dich nicht wundern weshalb das Teil nur eine Breite von 100 hat obwohl dein Fenster 500 breit ist.

    Du kannst von Winforms nicht einfach auf WPF umsteigen, denn hier läuft alles komplett anders und vor allem muss man wissen wie es läuft. Schau dich im Tutorial Bereich um wie man damit arbeitet und achte dabei besonders auf das XAML Markup und auf die nicht vorhandenen Codebehinds welche durch Viewmodels ersetzt werden. Sprich in WPF solltest du kein Codebehind verwenden(nicht so wie bei Winforms, Button_Click etc.). WPF funktioniert optimal mit MVVM, was ich jetzt aber nicht nochmal erklären werde.

    Fazit: Lese dich zuerst gründlich in WPF, sonst fällst du nur auf die Schnauze(und je länger du es versuchst umso mehr fällst du). So wie du das im Moment machst, vergewaltigst du WPF und sonst gar nichts.
    Fange vll. mal damit an sowas anzuschauen: [WPF] MVVM: "Binding-Picking" im Xaml-Editor. Solange du solche Dinge nicht verstehst, handelst du dir mit WPF nur Ärger ein. Da kannst du gleich bei Winforms bleiben. Zusätzlich: [WPF] VB.NET und WPF - Wie fängt man am besten an?, [WPF] MVVM-Pattern, DataContext und DataTemplates im Treeview

    Das alles hab ich dir aber schon einmal gesagt: WPF - Designer laed super, beim Ausfuehren kommt jedoch eine Exception.
    Solange du nicht bereit bist einen Rat anzunehmen, lass es bitte und Frage auch nicht immer und immer wieder nach, nur weil dir Lösungsvorschläge nicht passen.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „thefiloe“ ()

    Kommt hier jetzt eigentlich noch etwas zum eigentlichen Problem?
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.