【问题标题】:xaml buttons inside dockpanel disappear停靠面板内的 xml 按钮消失
【发布时间】:2018-11-09 15:32:09
【问题描述】:

我有一个数据网格,停靠面板中有 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 个按钮包装在另一个停靠面板中,但它们似乎不共享页面并且只显示数据网格的列表。

【问题讨论】:

    标签: wpf xaml scrollviewer dockpanel


    【解决方案1】:

    我做的一种方法是将 3 个按钮包裹在另一个停靠面板中并将其停靠在底部。我将那个停靠面板移到了数据网格上方(非常重要)。

    我解决此问题的另一种方法是将停靠面板更改为网格并给它 2 行,1 行用于数据网格,另一行用于 3 个按钮(环绕堆栈面板)。

    【讨论】:

    • 第一个选项效果很好。不错的一个
    猜你喜欢
    • 1970-01-01
    • 2016-03-30
    • 2013-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 2017-06-08
    相关资源
    最近更新 更多