/ / WPF - Dlaczego moje kontrole są odcinane w czasie wykonywania? - wpf

WPF - Dlaczego moje kontrole są odcięte w czasie wykonywania? - wpf

Patrząc na moje okno w czasie projektowania, widać, że wszystkie elementy kontrolne mieszczą się w środku:

Czas projektowania, kontrole wyglądają normalnie.

Po uruchomieniu aplikacji formularz wygląda tak: Środowisko wykonawcze, sterowanie nie pasuje.

Oto mój XAML:

<Window x:Class="Test_App.BrowseDirectory"
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:LM_Config_Manager"
mc:Ignorable="d"
Title="Browse Directory" Height="114" Width="420" WindowStartupLocation="CenterOwner" ShowInTaskbar="False" ResizeMode="NoResize">
<Grid >
<TextBox x:Name="tbPath" HorizontalAlignment="Left" Height="23" Margin="10,25,0,0" TextWrapping="NoWrap" VerticalAlignment="Top" Width="329"/>
<Button x:Name="bBrowse" Content="Browse" HorizontalAlignment="Left" Margin="344,25,0,0" VerticalAlignment="Top" Width="61" Click="bBrowse_Click"/>
<Button x:Name="bOK" Content="OK" HorizontalAlignment="Left" Margin="209,55,0,0" VerticalAlignment="Top" Width="75" IsDefault="True" Click="bOK_Click"/>
<Button x:Name="bCancel" Content="Cancel" HorizontalAlignment="Left" Margin="115,55,0,0" VerticalAlignment="Top" Width="75" IsCancel="True" Click="bCancel_Click"/>
</Grid>
</Window>

Okno wygląda jak jego kurczenie się w czasie wykonywania ...

Co powoduje to?

Odpowiedzi:

1 dla odpowiedzi № 1

Określono określoną wysokość i szerokość w atrybutach okna. Lepszym rozwiązaniem może być ich usunięcie i dodanie

SizeToContent="WidthAndHeight"

Patrząc na okno środowiska wykonawczego, wygląda na to, że do okna, które nie jest stosowane w czasie projektowania, zastosowano określony styl lub styl, dlatego oba wyglądają inaczej.


0 dla odpowiedzi nr 2

Projektant visiblel używa innej ramki okna, ale ponieważ liczy się tylko wygląd środowiska wykonawczego, można określić Margin z korzenia Grid w znacznikach XAML:

<Grid Margin="16">
<TextBox x:Name="tbPath" HorizontalAlignment="Left" Height="23" Margin="10,25,0,0" TextWrapping="NoWrap" VerticalAlignment="Top" Width="329"/>
<Button x:Name="bBrowse" Content="Browse" HorizontalAlignment="Left" Margin="344,25,0,0" VerticalAlignment="Top" Width="61" Click="bBrowse_Click"/>
<Button x:Name="bOK" Content="OK" HorizontalAlignment="Left" Margin="209,55,0,0" VerticalAlignment="Top" Width="75" IsDefault="True" Click="bOK_Click"/>
<Button x:Name="bCancel" Content="Cancel" HorizontalAlignment="Left" Margin="115,55,0,0" VerticalAlignment="Top" Width="75" IsCancel="True" Click="bCancel_Click"/>
</Grid>