페이지에 ContentControl이 있습니다. ContentControl은 현재 DataGrid를 포함하고있는 UserControl에 동적으로 설정됩니다. 이 경우 페이지가 화면에서 사라지게되는 DataGrid의 내용에 맞게 페이지 크기가 조정됩니다.ContentControl이 변경 될 때 창 크기를 유지하는 방법
페이지 너비를 자동에서 하드 코드 된 값으로 변경하면 ContentControl이 동적으로 설정되면 페이지 너비가 변경되지 않습니다. 이것은 내가 원하는 행동입니다. 그러나 이것은 또한 사용자가 창을 수동으로 드래그하여 창 크기가 커지면 윈도우의 내용이 내가 설정 한 하드 코드 된 폭 값보다 커지지 않음을 의미합니다.
사용자가 창 크기를 늘리더라도 페이지가 커질 수있게하면서 ContentControl이 설정된 경우 페이지가 동일한 크기를 유지하게하려면 어떻게해야합니까? 당신은 내가 800의 minWidth를 가지고 볼 수 있고, CheckoutScreen 버튼을 클릭 할 때 내가 언급 한 바와 같이, 데이터 그리드를 포함하는 볼 수있는 ContentControl을로드하는 (이 폭에 남아 페이지를 원하는대로
<Page x:Class="SageWpf.Views.ShellView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d" Title="ShellView" MinHeight="450" MinWidth="800">
<Grid Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=Page, AncestorLevel=1}, Path=Width}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" BorderBrush="Black" BorderThickness="2" Width="193">
<StackPanel Orientation="Vertical" Width="188">
<Button x:Name="ItemsScreen" FontSize="28" Height="65" Margin="1" Opacity="1">Items</Button>
<Button x:Name="CheckoutScreen" FontSize="28" Height="65" Margin="1" Opacity="1">Checkout</Button>
</StackPanel>
</Border>
<ContentControl x:Name="ActiveItem" Grid.IsSharedSizeScope="True" Grid.Column="1"></ContentControl>
</Grid>
</Page>
위).
오, 예, 제가 실수로 Grid Width 바인딩을 사용하여이 문제를 해결하기위한 시도 중 하나에 남겨 두었습니다 ... 아무런 효과가 없었습니다. –
이것이 100 % 맞는지는 모르겠지만 WPF 컨트롤을위한'Measure' 및'Arrange' 패스가 있음을 기억하십시오. 페이지는'Measure'를 먼저 수행하고 그리드는 나타납니다. 그러나 그리드는 부모 컨테이너 앞에'Arrange '를하고'Page'는 무한한 너비를 가지며 스스로 성장할 수 있습니다. 페이지는 그리드를 수용하기 위해 커야합니다. 나는 이처럼 일하는 것과 같은 것을 가지고 있어도 과감한 어떤 것도 의지 할 필요가 없다고 확신합니다 ... – Charleh
잠시 시간을 내면 다시 올게요! – Charleh