의 높이 제한 목록 상자의 높이가 여기 내 XAML의 일부입니다 : 여기WPF : 그리드 행
<Grid HorizontalAlignment="Stretch"
Margin="10"
MaxHeight="{Binding Path=ActualHeight,
RelativeSource={RelativeSource AncestorType={x:Type Window}}}">
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TabControl Grid.Row="0" MinWidth="270" HorizontalAlignment="Stretch">
<TabItem Header="CPU">
<StackPanel Orientation="Vertical" >
<ListBox Name="CPUListBox"
ItemsSource="{Binding CPUCounters, Mode=OneWay}"
SelectionMode="Multiple"
MaxHeight="{Binding RelativeSource={RelativeSource
AncestorType={x:Type Grid}}, Path=ActualHeight}"
BorderThickness="1"
BorderBrush="#FF8B8B8B"
SelectionChanged="CPUListBox_SelectionChanged"
ScrollViewer.VerticalScrollBarVisibility="Visible">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<Run Text="{Binding CounterName, Mode=OneWay}"/>
<Run Text="{Binding InstanceName, Mode=OneWay}"/>
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Grid Name="CPUSelectButtonsGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Name="CPUSelectAllButton"
Margin="0,10,0,0"
Click="CPUSelectAllButton_Click">
<TextBlock Text="SELECT ALL"/>
</Button>
<Button Grid.Column="1" Name="CPUUnSelectAllButton"
Margin="0,10,0,0"
Click="CPUUnSelectAllButton_Click">
<TextBlock Text="UNSELECT ALL"/>
</Button>
</Grid>
</StackPanel>
</TabItem>
<TabItem Header="Memory">
<StackPanel Orientation="Vertical">
<ListBox Name="RAMListBox"
ItemsSource="{Binding RAMCounters, Mode=OneWay}"
SelectionMode="Multiple"
BorderThickness="1"
BorderBrush="#FF8B8B8B"
SelectionChanged="RAMListBox_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<Run Text="{Binding CounterName, Mode=OneWay}" />
<Run Text="{Binding InstanceName, Mode=OneWay}" />
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Grid Name="RAMSelectButtonsGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Name="RAMSelectAllButton"
Margin="0,10,0,0"
Click="RAMSelectAllButton_Click" >
<TextBlock Text="SELECT ALL"/>
</Button>
<Button Grid.Column="1" Name="RAMUnSelectAllButton"
Margin="0,10,0,0"
Click="RAMUnSelectAllButton_Click" >
<TextBlock Text="UNSELECT ALL"/>
</Button>
</Grid>
</StackPanel>
</TabItem>
</TabControl>
<StackPanel Grid.Row="1"
Orientation="Horizontal"
HorizontalAlignment="Right"
Margin="0,15,6,0">
<TextBlock Name="NumberOfSelectionsTextBlock" Text ="0"/>
<TextBlock Text=" items selected"/>
</StackPanel>
</Grid>
'무엇을 잘못 : 것은 내가 TabControl
의 각 탭에 ListBox
있습니다. ListBox
의 요소 수가 많으면 ListBox
버튼이 표시되어 액세스 할 수 없습니다. 나는 ListBox
을 Height
에서 MaxHeight="{Binding RelativeSource={RelativeSource AncestorType={x:Type Grid}}, Path=ActualHeight}"
으로 제한하려고 시도했지만 너무 많습니다. Grid
중 Height
, 그 아래에 Buttons
및 TextBoxes
을 포함하고 있습니다. Window
으로 전체 크기를 동적으로 조정하여 아무 것도 잘리지 않도록하십시오.
이 문제에 대한 적절한 해결책을 찾을 수 없습니다. 어떻게해야합니까?
로 설정할 수 있습니다로 고정 된 크기 주어질 수있다? – gilmishal
왜 스택 패널 대신 그리드를 사용하고 버튼 높이를 고정시키고 나머지를 목록에 표시합니까? – Muds
@ 머드 - 내 문제가 해결되었습니다. 고맙습니다. 솔루션을 답으로 추가하면 올바른 것으로 확인합니다. 다시 한 번 감사드립니다! – Loreno