CheckListBox 컨트롤의 크기를 세로로 조정하는 데 문제가 있습니다 (https://wpftoolkit.codeplex.com/). 저는 WPF에서 1 주일 된 초보자입니다. 따라서 이것은 (세로) 크기 조정에 대한 일반적인 문제 일 수 있습니다.WPF에서의 세로 크기 조정 문제
그리드가 주어지면 처음 5 개 행의 크기를 원하는대로 지정하고 뷰포트에서 6 행의 CheckListBox 컨트롤을 남은 공간을 수직으로 채우기를 원합니다.
많은 문제가있는 CheckListBox를 채울 때 컨트롤은 뷰포트를 확장/오버플로합니다. 내가 원하는 것은 남은 공간의 높이를 수직으로 가정하여 내부 스크롤바를 표시합니다.
<Grid Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Row="0">Some title</Label>
<RadioButton Grid.Row="1" GroupName="NameSortRadioButtonGroup">Firstname Lastname</RadioButton>
<RadioButton Grid.Row="2" GroupName="NameSortRadioButtonGroup">Lastname, Firstname</RadioButton>
<TextBox Grid.Row="3" Margin="0,5" />
<Label Grid.Row="4" Content="{Binding ElementName=MyCheckListBox, Path=SelectedItems.Count}" />
<xctk:CheckListBox
Grid.Row="5"
Name="MyCheckListBox"
VerticalAlignment="Stretch"
VerticalContentAlignment="Stretch"
Height="Auto"
/>
</Grid>
나는 단순화하기 위해 몇 가지 상위 요소를 생략했습니다. 그리드는 그리드 안에 있고, 그것은 캔버스에 있고, 그리드 안에 있으며,이 외부 그리드는 윈도우 요소의 직접적인 자식입니다.
내가
은 또한 처음에 먼저 StackPanel에 함께 전체 일을 시도하고 나중에 DockPanel 대신 Grid 컨트롤.높이를 사용하여 CheckListBox의 높이를 설정할 수도 여기에합니다 (CheckListBox 버그의 가능성을 제거하기 위해) 및 높이 = "자동"으로 StackPanel에의 CheckListBox 컨트롤을 포장 시도 = "{ElementName을 = CheckListBoxStackPanelWrapper, 경로 =의 ActualHeight 바인딩}"
모든 경우에 CheckListBox가 창/뷰포트 밖으로 흐릅니다. 명시적인 높이를 주면 올바르게 동작하지만 분명히 윈도우 크기를 조정할 수 있습니다.
어떻게해야합니까? 당신의 외부 제어가 MSDN에서 자식 요소를 제한하지 않습니다 이는 Canvas
때문에
은 '격자'에 직접있는 '격자'입니까, 아니면 다른 컨트롤의 일부입니까? – dkozl
캔버스에있는 그리드에있는 더 많은 것들이 있습니다. 이 캔버스의 크기는 "콘텐츠 영역"이며 효과적으로 뷰포트로 언급됩니다. –
'캔버스 '문제입니다. [MSDN] (http://msdn.microsoft.com/en-us/library/system.windows.controls.canvas.aspx)에서 : Canvas의 _Child 요소는 항상 원하는 전체 크기로 제공됩니다. 그리하여 당신의'그리드 (Grid)'는 필요한만큼의 공간이 주어질 것입니다. – dkozl