xaml 停靠面板内的按钮消失
xaml buttons inside dockpanel disappear
我有一个数据网格,停靠面板内有 3 个按钮。当数据网格的列表填满页面时,垂直滚动出现,3 个按钮消失。即使你一直滚动到底部,按钮也不在那里。
<HeaderedContentControl>
<HeaderedContentControl.Header>
<TextBlock TextWrapping="Wrap">
<TextBlock.Text>
<MultiBinding StringFormat="Associated WUCs for {0} ({1})">
<Binding Path="Class.Name" />
<Binding Path="Class.Narrative" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</HeaderedContentControl.Header>
<DockPanel>
<DockPanel>
<m:DataGrid ItemsSource="{Binding Source={StaticResource ViewSource}}"
DockPanel.Dock="Top"
Style="{StaticResource {x:Type DataGrid}}"
CanUserAddRows="False"
CanUserDeleteRows="True">
<DataGrid.Columns>
<DataGridTemplateColumn IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Style="{StaticResource DataGridButtonStyle}"
Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}, Path=DataContext.DeleteCommand}"
CommandParameter="{Binding}">
<Image Style="{StaticResource DataGridButtonImageStyle}"
Source="{StaticResource DeleteImage}" />
</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="{Binding Source={x:Type entities:OtherClass}, ConverterParameter='Name', Converter={StaticResource DisplayNameConverter}}"
Binding="{Binding Name}"
IsReadOnly="True"
SortDirection="Ascending" />
<DataGridTextColumn Header="{Binding Source={x:Type entities:OtherClass}, ConverterParameter='Narrative', Converter={StaticResource DisplayNameConverter}}"
Binding="{Binding Narrative}"
IsReadOnly="True"
SortDirection="Ascending" />
</DataGrid.Columns>
</m:DataGrid>
</DockPanel>
<Button Command="{Binding AddCommand}">
<StackPanel Orientation="Horizontal">
<Image Source="{StaticResource AddImage}"
Height="16" />
<TextBlock Text=" Add" />
</StackPanel>
</Button>
<Button Command="{Binding OkCommand}"
DockPanel.Dock="Right"
Content="OK" />
<Button Command="{Binding CancelCommand}"
DockPanel.Dock="Right"
Content="Cancel"
HorizontalAlignment="Right" />
</DockPanel>
</HeaderedContentControl>
我希望 3 个按钮在滚动出现时转到滚动条的底部和外部。我试过使用堆栈面板,但禁用了滚动条。我还尝试将数据网格包裹在一个停靠面板内,将 3 个按钮包裹在另一个停靠面板内,但它们似乎不共享页面并且只显示数据网格的列表。
我所做的一种方法是将 3 个按钮包裹在另一个停靠面板中并将其停靠在底部。然后我将该停靠面板移至数据网格上方(非常重要)。
我解决这个问题的另一种方法是将停靠面板更改为网格并给它 2 行,1 行用于数据网格,另一行用于 3 个按钮(环绕在堆栈面板周围)。
我有一个数据网格,停靠面板内有 3 个按钮。当数据网格的列表填满页面时,垂直滚动出现,3 个按钮消失。即使你一直滚动到底部,按钮也不在那里。
<HeaderedContentControl>
<HeaderedContentControl.Header>
<TextBlock TextWrapping="Wrap">
<TextBlock.Text>
<MultiBinding StringFormat="Associated WUCs for {0} ({1})">
<Binding Path="Class.Name" />
<Binding Path="Class.Narrative" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</HeaderedContentControl.Header>
<DockPanel>
<DockPanel>
<m:DataGrid ItemsSource="{Binding Source={StaticResource ViewSource}}"
DockPanel.Dock="Top"
Style="{StaticResource {x:Type DataGrid}}"
CanUserAddRows="False"
CanUserDeleteRows="True">
<DataGrid.Columns>
<DataGridTemplateColumn IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Style="{StaticResource DataGridButtonStyle}"
Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}, Path=DataContext.DeleteCommand}"
CommandParameter="{Binding}">
<Image Style="{StaticResource DataGridButtonImageStyle}"
Source="{StaticResource DeleteImage}" />
</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="{Binding Source={x:Type entities:OtherClass}, ConverterParameter='Name', Converter={StaticResource DisplayNameConverter}}"
Binding="{Binding Name}"
IsReadOnly="True"
SortDirection="Ascending" />
<DataGridTextColumn Header="{Binding Source={x:Type entities:OtherClass}, ConverterParameter='Narrative', Converter={StaticResource DisplayNameConverter}}"
Binding="{Binding Narrative}"
IsReadOnly="True"
SortDirection="Ascending" />
</DataGrid.Columns>
</m:DataGrid>
</DockPanel>
<Button Command="{Binding AddCommand}">
<StackPanel Orientation="Horizontal">
<Image Source="{StaticResource AddImage}"
Height="16" />
<TextBlock Text=" Add" />
</StackPanel>
</Button>
<Button Command="{Binding OkCommand}"
DockPanel.Dock="Right"
Content="OK" />
<Button Command="{Binding CancelCommand}"
DockPanel.Dock="Right"
Content="Cancel"
HorizontalAlignment="Right" />
</DockPanel>
</HeaderedContentControl>
我希望 3 个按钮在滚动出现时转到滚动条的底部和外部。我试过使用堆栈面板,但禁用了滚动条。我还尝试将数据网格包裹在一个停靠面板内,将 3 个按钮包裹在另一个停靠面板内,但它们似乎不共享页面并且只显示数据网格的列表。
我所做的一种方法是将 3 个按钮包裹在另一个停靠面板中并将其停靠在底部。然后我将该停靠面板移至数据网格上方(非常重要)。
我解决这个问题的另一种方法是将停靠面板更改为网格并给它 2 行,1 行用于数据网格,另一行用于 3 个按钮(环绕在堆栈面板周围)。