TextBox 设置固定的宽高,当超出范围 自动都出现滚动条了。干嘛非得自定义一个。

解决方案 »

  1.   

    我对滚动条样式有需求 <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True">
                                <ScrollViewer Focusable="False" x:Name="DG_ScrollViewer">
                                    <ScrollViewer.Template>
                                        <ControlTemplate TargetType="{x:Type ScrollViewer}">
                                            <Grid>
                                                <Grid.ColumnDefinitions>
                                                    <ColumnDefinition Width="Auto" />
                                                    <ColumnDefinition Width="*" />
                                                    <ColumnDefinition Width="Auto" />
                                                </Grid.ColumnDefinitions>
                                                <Grid.RowDefinitions>
                                                    <RowDefinition Height="Auto" />
                                                    <RowDefinition Height="*" />
                                                    <RowDefinition Height="Auto" />
                                                </Grid.RowDefinitions>
                                                <Border Grid.Row="0" Grid.Column="2"  Background="#FF323135" BorderBrush="#FF858585" BorderThickness="0,0.6,0,0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"></Border>
                                                <!--中间列集合显示-->
                                                <DataGridColumnHeadersPresenter Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="0" x:Name="PART_ColumnHeadersPresenter">
                                                    <DataGridColumnHeadersPresenter.Visibility>
                                                        <Binding Path="HeadersVisibility" RelativeSource="{RelativeSource FindAncestor, AncestorLevel=2, AncestorType={x:Type DataGrid}}">
                                                            <Binding.ConverterParameter>
                                                                <DataGridHeadersVisibility>Column</DataGridHeadersVisibility>
                                                            </Binding.ConverterParameter>
                                                        </Binding>
                                                    </DataGridColumnHeadersPresenter.Visibility>
                                                </DataGridColumnHeadersPresenter>
                                                <!--滚动条显示-->
                                                <ScrollContentPresenter CanContentScroll="{TemplateBinding ScrollViewer.CanContentScroll}" CanHorizontallyScroll="False" CanVerticallyScroll="True" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" Margin="0" Grid.ColumnSpan="2" Grid.Row="1" Grid.Column="0"  x:Name="PART_ScrollContentPresenter" />
                                                <!--垂直滚动条显示-->
                                                <ScrollBar VerticalAlignment="Stretch" Grid.Column="2" Grid.Row="1" Maximum="{TemplateBinding ScrollableHeight}" x:Name="PART_VerticalScrollBar" Orientation="Vertical" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" />
                                                <!--水平滚动条显示-->
                                                <Grid Grid.Column="1" Grid.Row="2">
                                                    <Grid.ColumnDefinitions>
                                                        <ColumnDefinition Width="{Binding NonFrozenColumnsViewportHorizontalOffset, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type DataGrid}}}" />
                                                        <ColumnDefinition Width="*" />
                                                    </Grid.ColumnDefinitions>
                                                    <ScrollBar Grid.Column="1" Maximum="{TemplateBinding ScrollableWidth}" x:Name="PART_HorizontalScrollBar" Orientation="Horizontal"  Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" />
                                                </Grid>
                                            </Grid>
                                        </ControlTemplate>
                                    </ScrollViewer.Template>
                                    <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" MinHeight="220"  />
                                </ScrollViewer>
                            </Border>                    </ControlTemplate>
                    </Setter.Value>
                </Setter>