1
當用itemControl模板替換StackPanel時突然滾動不再正常工作。滾動查看器在將堆棧面板轉換爲ItemsControl時出現問題
老:
<ScrollViewer x:Name="HorizontalScroller"
Grid.Column="1"
VerticalScrollBarVisibility="Disabled"
HorizontalScrollBarVisibility="Hidden"
CanContentScroll="True" Margin="2.4,0,1.2,0">
<StackPanel x:Name="spHorizontal" Orientation="Horizontal" UseLayoutRounding="False"
ScrollViewer.VerticalScrollBarVisibility="Disabled" Width="862.4"/>
</ScrollViewer>
新:
<ScrollViewer x:Name="HorizontalScroller" Grid.Column="1" VerticalScrollBarVisibility="Disabled"
HorizontalScrollBarVisibility="Hidden" CanContentScroll="True" Margin="2.4,0,1.2,0" >
<!---RegBtns verwijst naar de ObservableCollection die alle registration buttons bevat-->
<ItemsControl Name="ItemControlRegistration" ItemsSource="{Binding ElementName=Window, Path=RegBtns}" Width="834.4">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel x:Name="spHorizontal" Orientation="Horizontal" UseLayoutRounding="False" ScrollViewer.VerticalScrollBarVisibility="Disabled"
Width="834,4" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<!--template custom style button: -->
<Button x:Name="RegistrationTestButton" Content="TEST" HorizontalAlignment="Left" Height="73" Width="151"
Margin="10,0,5,0" Style="{DynamicResource ButtonStyleRegistration}"
Click="RegistrationTestButton_Click">
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
問題是,它並不能完全顯示的按鈕。從1-5的含義瀏覽並按右鍵不直接顯示2-6。 換句話說,如果我按右鍵我想一次看到完整的按鈕nr 6。現在它基本上向右(或向左)緩慢滾動,緩慢出現部分按鈕。 當我按下我想要下一個按鈕即時顯示。
究竟發生了什麼這些突然的變化?
問候。
似乎沒有工作。此外,我必須能夠從後面的代碼訪問此scrollviewer。 – Rakr 2012-03-16 14:41:58
這就是我所做的,但有困難現在從代碼隱藏存取scrollviewer。我需要這個將LineLeft和LineRight屬性設置爲某些按鈕。 「ItemsPanelTemplate的VisualTree必須包含一個Panel.'System.Windows.Controls.ScrollViewer'不是一個Panel。wpf」 – Rakr 2012-03-16 14:54:09
只是用 –
pamidur
2012-03-16 15:10:01