DataGrid不能正确显示垂直滚动条的问题

光脚丫思考 2014-10-29 10:24:23
相当的无语了,如下图所示:


代码在后面……
...全文
825 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
mingtianyi 2014-11-27
  • 打赏
  • 举报
回复
结贴啊。。。
光脚丫思考 2014-10-30
  • 打赏
  • 举报
回复
多谢大家的热心帮助,非常感谢!!!!!
光脚丫思考 2014-10-30
  • 打赏
  • 举报
回复
终于解决这个问题了,最根本的原因竟然是明细表格所在的那一行的Height为设置为Auto了,如下图所示: 把Height=“Auto”取消掉就行了。好逗逼的问题呀!!!!!!!!!!
光脚丫思考 2014-10-30
  • 打赏
  • 举报
回复
引用 7 楼 duanzi_peng 的回复:
整体布局 改成 grid吧,别使用dockpanel, 分2行,第二行 再分2列, 左侧也可以使用grid分2行,下边的列表独自占一行。
非常感谢!我先把DockPanel给替换成Grid吧,至于上面那个问题,我之前的思路就是创建一个一行三列的表格,左边用来显示主单据列表,中间列用来显示分隔控件,右侧则显示单据的详细信息。所以,就把Grid.Row都设置为0了。
exception92 2014-10-30
  • 打赏
  • 举报
回复
整体布局 改成 grid吧,别使用dockpanel, 分2行,第二行 再分2列, 左侧也可以使用grid分2行,下边的列表独自占一行。
exception92 2014-10-30
  • 打赏
  • 举报
回复
一般整体布局 不适用dockpanel,而是使用grid。将grid分成列,行,再向里边添加控件。
贴个图,是赋值你的代码后的一个问题。

再检查检查代码
光脚丫思考 2014-10-30
  • 打赏
  • 举报
回复
引用 4 楼 duanzi_peng 的回复:
这个是布局设置的问题,没有为显示明细的 DataGrid 指定具体的行吧,代码好乱。。。。
哎,本来想把代码一起此行都贴上去的,结果论坛最多只能录入10000个字符,只有发了几个帖子,确实比较凌乱。 按照我做的哪个demo来看,肯定是和布局有关系的,但是我也确实为显示明细的DataGrid指定了具体的行和列。 现在就是说不清楚到底是哪个布局设置出现了问题?难道是DockPanel和DataGrid套在一起就成这个鬼德性了?
exception92 2014-10-30
  • 打赏
  • 举报
回复
这个是布局设置的问题,没有为显示明细的 DataGrid 指定具体的行吧,代码好乱。。。。
E次奥 2014-10-30
  • 打赏
  • 举报
回复
用Grid,宽度用auto,让DataGrid自动填充
光脚丫思考 2014-10-29
  • 打赏
  • 举报
回复
但是,单独搞了一个DataGrid,竟然又能正常的显示,如下图:

奶奶的,实在受不了呀!代码如下:

<Window x:Class="Demo01Ex01.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Height="430"
Width="334">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50" />
<RowDefinition Height="10" />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Label Grid.Row="0"
Content="测试DataGrid滚动条不显示的问题"
FontSize="18"
FontWeight="Bold"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center" />
<GridSplitter Grid.Row="1"
HorizontalAlignment="Stretch"
Height="Auto"
Margin="1" />
<DataGrid Grid.Row="2"
ItemsSource="{Binding Persons}"
AutoGenerateColumns="False"
HorizontalGridLinesBrush="Gainsboro"
VerticalGridLinesBrush="Gainsboro">
<DataGrid.Columns>
<DataGridTextColumn Header="First Name"
Binding="{Binding FirstName}" />
<DataGridTextColumn Header="Last Name"
Binding="{Binding LastName}" />
</DataGrid.Columns>
</DataGrid>

</Grid>
</Window>

实在太无语了!
光脚丫思考 2014-10-29
  • 打赏
  • 举报
回复

<Label Grid.Row="1"
                           Grid.Column="0"
                           Content="供货商:"
                           Style="{StaticResource BoldLabelStyle}" />
                    <Grid Grid.Row="1"
                          Grid.Column="1"
                          Grid.ColumnSpan="3">
                        <Grid.RowDefinitions>
                            <RowDefinition />
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="90" />
                            <ColumnDefinition />
                        </Grid.ColumnDefinitions>
                        <TextBox Grid.Row="0"
                                 Grid.Column="0"
                                 Style="{StaticResource BaseTextBoxStyle}"
                                 Template="{DynamicResource TextBoxWithButtonStyle}" />
                        <TextBox Grid.Row="0"
                                 Grid.Column="1"
                                 Style="{StaticResource BaseTextBoxStyle}" />
                    </Grid>

                    <Label Grid.Row="1"
                           Grid.Column="4"
                           Content="收货仓:"
                           Style="{StaticResource BoldLabelStyle}" />
                    <Grid Grid.Row="1"
                          Grid.Column="5">
                        <Grid.RowDefinitions>
                            <RowDefinition />
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="90" />
                            <ColumnDefinition />
                        </Grid.ColumnDefinitions>
                        <TextBox Grid.Row="0"
                                 Grid.Column="0"
                                 Style="{StaticResource BaseTextBoxStyle}"
                                 Template="{DynamicResource TextBoxWithButtonStyle}" />
                        <TextBox Grid.Row="0"
                                 Grid.Column="1"
                                 Style="{StaticResource BaseTextBoxStyle}" />
                    </Grid>

                    <Label Grid.Row="2"
                           Grid.Column="0"
                           Content="备注:"
                           Style="{StaticResource BoldLabelStyle}" />
                    <TextBox Grid.Row="2"
                             Grid.Column="1"
                             Grid.ColumnSpan="5"
                             Style="{StaticResource BaseTextBoxStyle}"
                             Text="{Binding Remarks}" />

                </Grid>

                <!--显示明细-->
                <DataGrid Grid.Row="1"
                          Grid.Column="0"
                          AutoGenerateColumns="false"
                          Margin="3,12,3,3"
                          ItemsSource="{Binding Items}"
                          HorizontalGridLinesBrush="Gainsboro"
                          VerticalGridLinesBrush="Gainsboro">
                    <DataGrid.Columns>
                        <DataGridTextColumn Header="款号"
                                            Binding="{Binding ProductNumber}" />
                        <DataGridTextColumn Header="商品名称"
                                            Binding="{Binding Product.ProductName}" />
                        <DataGridTextColumn Header="颜色"
                                            Binding="{Binding ProductColor.ColorName}" />
                        <DataGridTextColumn Header="尺码"
                                            Binding="{Binding ProductSize.SizeName}" />
                        <DataGridTextColumn Header="数量"
                                            Binding="{Binding Count}" />
                        <DataGridTextColumn Header="单价"
                                            Binding="{Binding Price, StringFormat=\{0:C4\}}" />
                        <DataGridTextColumn Header="金额"
                                            Binding="{Binding Amount, StringFormat=\{0:C4\}}" />
                        <DataGridTextColumn Header="折扣"
                                            Binding="{Binding Discount, StringFormat=\{0:C4\}}" />
                        <DataGridTextColumn Header="折后价"
                                            Binding="{Binding DiscountPrice, StringFormat=\{0:C4\}}" />
                        <DataGridTextColumn Header="折后金额"
                                            Binding="{Binding DiscountAmount, StringFormat=\{0:C4\}}" />
                        <DataGridTextColumn Header="类型"
                                            Binding="{Binding ItemType, Converter={StaticResource StockItemTypeConverter}}" />
                    </DataGrid.Columns>
                </DataGrid>
            </Grid>
        </Grid>
    </DockPanel>
</Window>
光脚丫思考 2014-10-29
  • 打赏
  • 举报
回复
整个XAML的代码如下所示:

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:dmc="clr-namespace:DMSystem.Presentation.Converters"
        xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
        x:Class="DMSystem.Presentation.Views.DataViewBase"
        Title="DataViewBase"
        Height="469"
        Width="958">
    <Window.Resources>
        <!--单据明细类型的转换器-->
        <dmc:StockDocumentItemTypeConverter x:Key="StockItemTypeConverter" />
        <!--包含有按钮的文本框模板-->
        <ControlTemplate x:Key="TextBoxWithButtonStyle"
                         TargetType="{x:Type TextBoxBase}">
            <Microsoft_Windows_Themes:ListBoxChrome x:Name="Bd"
                                                    BorderBrush="{TemplateBinding BorderBrush}"
                                                    BorderThickness="{TemplateBinding BorderThickness}"
                                                    Background="{TemplateBinding Background}"
                                                    RenderMouseOver="{TemplateBinding IsMouseOver}"
                                                    RenderFocused="{TemplateBinding IsKeyboardFocusWithin}"
                                                    SnapsToDevicePixels="True">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition />
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition />
                        <ColumnDefinition Width="25" />
                    </Grid.ColumnDefinitions>
                    <ScrollViewer x:Name="PART_ContentHost"
                                  Grid.Row="0"
                                  Grid.Column="0"
                                  SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
                    <Button Grid.Row="0"
                            Grid.Column="1"
                            Content="•••"
                            VerticalContentAlignment="Center" />
                </Grid>
            </Microsoft_Windows_Themes:ListBoxChrome>
            <ControlTemplate.Triggers>
                <Trigger Property="IsEnabled"
                         Value="False">
                    <!--<Setter Property="Background" TargetName="Bd" 
						Value="{DynamicResource {x:Static SystemColors.InactiveSelectionHighlightBrushKey}}"/>-->
                    <Setter Property="Foreground"
                            Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>

    </Window.Resources>
    <DockPanel LastChildFill="False">
        <!--顶端的工具栏-->
        <ToolBarTray DockPanel.Dock="Top"
                     Orientation="Horizontal">
            <ToolBar Band="1"
                     BandIndex="1">
                <ToolBar.Resources>
                    <Style TargetType="{x:Type Image}">
                        <Setter Property="Width"
                                Value="40" />
                        <Setter Property="Height"
                                Value="40" />
                    </Style>
                </ToolBar.Resources>
                <Button>
                    <Image Source="/DMSystem.Presentation;component/Resources/Images/New.png" />
                </Button>
                <Button>
                    <Image Source="/DMSystem.Presentation;component/Resources/Images/Edit.png" />
                </Button>
                <Button>
                    <Image Source="/DMSystem.Presentation;component/Resources/Images/Save.png" />
                </Button>
                <Button>
                    <Image Source="/DMSystem.Presentation;component/Resources/Images/Cancel.png" />
                </Button>
                <Button>
                    <Image Source="/DMSystem.Presentation;component/Resources/Images/Delete.png" />
                </Button>
            </ToolBar>
        </ToolBarTray>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="270" />
                <ColumnDefinition Width="7" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>

            <!--单据列表-->
            <DataGrid Grid.Row="0"
                      Grid.Column="0"
                      AutoGenerateColumns="false"
                      IsReadOnly="True"
                      ItemsSource="{Binding StockDocuments}"
                      HorizontalGridLinesBrush="Gainsboro"
                      VerticalGridLinesBrush="Gainsboro"
                      SelectionMode="Single"
                      SelectionUnit="FullRow"
                      x:Name="DocumentsDataGrid">
                <DataGrid.Columns>
                    <DataGridTextColumn Header="单据编号"
                                        Binding="{Binding DocumentNo}" />
                    <DataGridTextColumn Header="单据类型"
                                        Binding="{Binding DocumentType}" />
                    <DataGridTextColumn Header="日期"
                                        Binding="{Binding BusinessDate, StringFormat=\{0:d\}}" />
                </DataGrid.Columns>
            </DataGrid>

            <GridSplitter  Grid.Row="0"
                           Grid.Column="1"
                           BorderBrush="Gray"
                           Width="7"
                           Background="LightGray"
                           HorizontalAlignment="Center"
                           VerticalAlignment="Stretch" />

            <!--显示主单据和明细的区域-->
            <Grid  Grid.Row="0"
                   Grid.Column="2"
                   DataContext="{Binding SelectedItem, ElementName=DocumentsDataGrid}">
                <Grid.RowDefinitions>
                    <RowDefinition Height="80" />
                    <RowDefinition Height="Auto" />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition />
                </Grid.ColumnDefinitions>

                <!--显示主单据-->
                <Grid Grid.Row="0"
                      Grid.Column="0">
                    <Grid.RowDefinitions>
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="65" />
                        <ColumnDefinition Width="100" />
                        <ColumnDefinition Width="65" />
                        <ColumnDefinition Width="110" />
                        <ColumnDefinition Width="65" />
                        <ColumnDefinition Width="200" />
                    </Grid.ColumnDefinitions>

                    <Label Grid.Row="0"
                           Grid.Column="0"
                           Content="单据编号:"
                           Style="{StaticResource BoldLabelStyle}" />
                    <TextBox Grid.Row="0"
                             Grid.Column="1"
                             Style="{StaticResource BaseTextBoxStyle}"
                             IsReadOnly="True"
                             Text="{Binding DocumentNo}" />

                    <Label Grid.Row="0"
                           Grid.Column="2"
                           Content="日期:"
                           Style="{StaticResource BoldLabelStyle}" />
                    <DatePicker Grid.Row="0"
                                Grid.Column="3"
                                Style="{StaticResource BaseDatePickerStyle}"
                                Text="{Binding BusinessDate, StringFormat=\{0:d\}}" />

                    <Label Grid.Row="0"
                           Grid.Column="4"
                           Content="经手人:"
                           Style="{StaticResource BoldLabelStyle}" />
                    <Grid Grid.Row="0"
                          Grid.Column="5">
                        <Grid.RowDefinitions>
                            <RowDefinition />
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="90" />
                            <ColumnDefinition />
                        </Grid.ColumnDefinitions>
                        <TextBox Grid.Row="0"
                                 Grid.Column="0"
                                 Style="{StaticResource BaseTextBoxStyle}"
                                 Template="{DynamicResource TextBoxWithButtonStyle}" />
                        <TextBox Grid.Row="0"
                                 Grid.Column="1"
                                 Style="{StaticResource BaseTextBoxStyle}" />
                    </Grid>

8,734

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧