Не может полностью разработать ListBox/Scrollviewer в WPF

Я использую пользовательские Полосы прокрутки, мы создали использующий стандартный ControlTemplates, однако когда я применяю их к ListBox существует угол в нижнем правом, которое я неспособен найти любым способом переопределить.

К сожалению, я не могу разместить фотографию, пока я не понимаю больше мыслей. Но угол, к которому я обращаюсь, - когда и вертикальная и горизонтальная полоса прокрутки появляется, существует пространство в нижнем правом, которое заполнено грязно-белым цветом, что я неспособен к ovrerride

12
задан DJScrib 22 December 2009 в 07:06
поделиться

2 ответа

это часть кода шаблона, который я получил для ScrollViewer с помощью Blend. Я добавил прямоугольник в правом нижнем углу и установил заливку красным. Вы можете оформить его таким же образом или развернуть одну из полос прокрутки, чтобы покрыть пространство, используя Grid.RowSpan = "2" для VerticalScrollBar (первая) или Grid.ColumnSpan = "2" для HorizontalScrollBar (вторая).

<Style TargetType="{x:Type ScrollViewer}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ScrollViewer}">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition/>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <ScrollContentPresenter Grid.Column="0"/>
                    <ScrollBar Name="PART_VerticalScrollBar" Grid.Row="0" Grid.Column="1" Value="{TemplateBinding VerticalOffset}" Maximum="{TemplateBinding ScrollableHeight}" ViewportSize="{TemplateBinding ViewportHeight}" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"/>
                    <ScrollBar Name="PART_HorizontalScrollBar" Orientation="Horizontal" Grid.Row="1" Grid.Column="0" Value="{TemplateBinding HorizontalOffset}" Maximum="{TemplateBinding ScrollableWidth}" ViewportSize="{TemplateBinding ViewportWidth}" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"/>
                    <Rectangle Grid.Row="1" Grid.Column="1" Fill="Red"/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
11
ответ дан 2 December 2019 в 22:05
поделиться

Две вещи, которые могут помочь:

1) Используйте Snoop для изучения дерева элементов вашего приложения, это может помочь в поиске проблемы.

2) В зависимости от того, как вы запустили управление, вы можете рассмотреть возможность начать с копии стандартного ListBox. Я нашел проблемы с некоторыми элементами управления, когда начинаю стилизацию с пустого или частичного шаблона.

надеемся, это поможет

.
0
ответ дан 2 December 2019 в 22:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: