Avatar billede sph1nx Nybegynder
07. juni 2009 - 18:47 Der er 1 kommentar

Scroll bars i en Listbox men ikke den anden

Har følgende 2 Listbox defineret i xaml :

<ListBox x:Name="SearchResult" IsSynchronizedWithCurrentItem="True" Foreground="Black"  ItemsSource="{Binding}" Margin="0,32,0,0" Background="{x:Null}">
                <ListBox.ContextMenu>
                    <ContextMenu>
                        <MenuItem Header="Add to queue" Command="Util:Main.AddQueueCommand"/>
                    </ContextMenu>
                </ListBox.ContextMenu>
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock FontWeight="Bold" Text="{Binding Path=Testtext}"/>
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
            <Canvas Grid.Column="1" x:Name="MediaCanvas">
                <Canvas Canvas.Left="0" Canvas.Top="468" Height="359" Name="QueueCanvas" Width="686">
                    <ListBox x:Name="QueueList" IsSynchronizedWithCurrentItem="True" Background="{x:Null}" ScrollViewer.CanContentScroll="True" >
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="{Binding Path=Testtext}" FontWeight="Bold"/>
                                </StackPanel>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>
                </Canvas>


Og så har jeg følgende styles :

<Style TargetType="{x:Type ListBox}">
        <Setter Property="OverridesDefaultStyle" Value="True" />
        <Setter Property="SnapsToDevicePixels" Value="True" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate>
                    <Border CornerRadius="5" BorderThickness="4" BorderBrush="#3000" Background="Transparent" >
                        <ScrollViewer Margin="3">
                            <StackPanel Margin="3" IsItemsHost="True" />
                        </ScrollViewer>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <!-- End ListBox Style -->

    <!-- Start ListBoxItem Style-->
    <Style TargetType="{x:Type ListBoxItem}">
        <Setter Property="OverridesDefaultStyle" Value="True" />
        <Setter Property="SnapsToDevicePixels" Value="True" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ListBoxItem}">
                    <Border
            Name="TheBorder"
            CornerRadius="5"
            Background="Transparent">
                        <ContentPresenter Margin="4,1,4,2" />
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsSelected" Value="True">
                            <Setter TargetName="TheBorder" Property="Background" Value="#8000" />
                            <!-- Selected Item border color -->
                            <Setter Property="Foreground" Value="#FEEE" />
                            <!-- Selected item text color -->
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <Style x:Key="ScrollBarPageButton" TargetType="{x:Type RepeatButton}">
        <Setter Property="SnapsToDevicePixels" Value="True"/>
        <Setter Property="OverridesDefaultStyle" Value="true"/>
        <Setter Property="IsTabStop" Value="false"/>
        <Setter Property="Focusable" Value="false"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type RepeatButton}">
                    <Border Background="Transparent" />
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <!-- End Scrollbar Style - RepeatButton -->

    <!-- Start Scrollbar Style - Thumb -->
    <Style x:Key="ScrollBarThumb" TargetType="{x:Type Thumb}">
        <Setter Property="SnapsToDevicePixels" Value="True"/>
        <Setter Property="OverridesDefaultStyle" Value="true"/>
        <Setter Property="IsTabStop" Value="false"/>
        <Setter Property="Focusable" Value="false"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Thumb}">
                    <Border
            CornerRadius="4"
            Background="{TemplateBinding Background}"
            BorderBrush="{TemplateBinding BorderBrush}"
            BorderThickness="1" />
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <!-- End Scrollbar Style - Thumb -->

    <!-- Start Scrollbar Control Templates - VerticalScrollbar -->
    <ControlTemplate x:Key="VerticalScrollBar" TargetType="{x:Type ScrollBar}">
        <Track
      Name="PART_Track"
      Grid.Row="1"
      IsDirectionReversed="true">
            <Track.DecreaseRepeatButton>
                <RepeatButton
          Style="{StaticResource ScrollBarPageButton}"
          Command="ScrollBar.PageUpCommand" />
            </Track.DecreaseRepeatButton>
            <Track.Thumb>
                <Thumb
          Style="{StaticResource ScrollBarThumb}"
          Margin="1,0,1,0" 
          Background="#4000" />
                <!-- Color of scroll -->
            </Track.Thumb>
            <Track.IncreaseRepeatButton>
                <RepeatButton
          Style="{StaticResource ScrollBarPageButton}"
          Command="ScrollBar.PageDownCommand" />
            </Track.IncreaseRepeatButton>
        </Track>
    </ControlTemplate>
    <!-- End Scrollbar Control Templates - VerticalScrollbar -->

    <!-- Start Scrollbar Control Templates - HorizontalScrollbar -->
    <ControlTemplate x:Key="HorizontalScrollBar" TargetType="{x:Type ScrollBar}">
        <Grid >
            <Track
        Name="PART_Track"
        Grid.Column="1"
        IsDirectionReversed="False">
                <Track.DecreaseRepeatButton>
                    <RepeatButton
            Style="{StaticResource ScrollBarPageButton}"
            Command="ScrollBar.PageLeftCommand" />
                </Track.DecreaseRepeatButton>
                <Track.Thumb>
                    <Thumb
            Style="{StaticResource ScrollBarThumb}"
            Margin="0,1,0,1" 
            Background="#4000" />
                </Track.Thumb>
                <Track.IncreaseRepeatButton>
                    <RepeatButton
            Style="{StaticResource ScrollBarPageButton}"
            Command="ScrollBar.PageRightCommand" />
                </Track.IncreaseRepeatButton>
            </Track>
        </Grid>
    </ControlTemplate>
    <!-- Start Scrollbar Control Templates - HorizontalScrollbar -->

    <!-- Start Scrollbar style (order matters, this must be last as x-refs other styles)  -->
    <Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}">
        <Setter Property="SnapsToDevicePixels" Value="True"/>
        <Setter Property="OverridesDefaultStyle" Value="true"/>
        <Style.Triggers>
            <Trigger Property="Orientation" Value="Horizontal">
                <Setter Property="Width" Value="Auto"/>
                <Setter Property="Height" Value="12" />
                <Setter Property="Template" Value="{StaticResource HorizontalScrollBar}" />
            </Trigger>
            <Trigger Property="Orientation" Value="Vertical">
                <Setter Property="Width" Value="12"/>
                <Setter Property="Height" Value="Auto" />
                <Setter Property="Template" Value="{StaticResource VerticalScrollBar}" />
            </Trigger>
        </Style.Triggers>
    </Style>

Problemet er at "SearchResult" listbox'en får en scrollbar når der er flere elementer i, men det gør "QueueList" listboxen ikke, kan simpelthen ikke gennemskue hvorfor
Avatar billede sph1nx Nybegynder
07. juni 2009 - 18:52 #1
Okay, fandt vist selv ud af det, det har et eller andet med canvas'et at gøre, men hvad ved jeg ikke lige, så vil stadig gerne give point til den der ved det
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester