#wpf #xaml #grid #window #size
#wpf #xaml #сетка #окно #размер
Вопрос:
У меня есть следующий код, чтобы точно подогнать сетку к окну. Как вы можете видеть на скриншоте, сетка выходит из окна в нижней и правой части. Ребята, вы хоть представляете, почему это происходит? и как это сделать правильно?
<Window x:Class="WpfApp1.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"
mc:Ignorable="d"
Topmost="true"
Background="Aqua"
WindowStartupLocation="CenterScreen"
DataContext="{Binding Main, Source={StaticResource Locator}}"
Title="MainWindow" Height="500" Width="500">
<Grid
Width="{Binding ActualWidth, RelativeSource = {RelativeSource AncestorType = {x:Type Window}}}"
Height="{Binding ActualHeight, RelativeSource ={RelativeSource AncestorType = {x:Type Window}}}">
<Border Opacity=".9" BorderBrush="Blue" BorderThickness="2"/>
</Grid>
</Window>
Комментарии:
1. Почему вы устанавливаете ширину и высоту сетки? Попробуйте опустить их, если это возможно.
Ответ №1:
Если вы привяжете фактическую ширину и высоту окна, значение Grid
будет превышать значение Window
, поскольку область содержимого меньше, чем само окно. Удалите привязки. Размер Grid
будет автоматически изменен, чтобы занять доступное пространство, если вы явно не задали Width
значение и Height
.
<Window x:Class="WpfApp1.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"
mc:Ignorable="d"
Topmost="true"
Background="Aqua"
WindowStartupLocation="CenterScreen"
DataContext="{Binding Main, Source={StaticResource Locator}}"
Title="MainWindow" Height="500" Width="500">
<Grid>
<Border Opacity=".9" BorderBrush="Blue" BorderThickness="2"/>
</Grid>
</Window>
Комментарии:
1. Спасибо. Тогда я это опущу. Если бы я когда-нибудь захотел изменить размер другого элемента по всему окну, например, изображения, расположенного ниже иерархии, как я мог бы тогда подогнать его к фактическому размеру содержимого?
2. @dasd-431 Это действительно зависит от того, как выглядит иерархия, общего ответа на этот вопрос нет.