1
StackPanelをitemControlテンプレートで置き換えると、スクロールが正しく機能しなくなりました。StackPanelをItemsControlに変換するときに問題が発生するScrollviewer
旧:
<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を見たいと思う。基本的には基本的に右(または左)にスクロールしてゆき、ボタンの部分がゆっくりと表示されます。 私が次のボタンを即座に表示したいときに押します。
これらの急激な変化は、どうして正確に起こりましたか?
よろしくお願いいたします。
動作していないようです。また、私はこのスクロールビューアにコードの背後からアクセスできる必要があります。 – Rakr
これはまさに私がやったことですが、コードビハインドからscrollviewerにアクセスするのに困っています。 LineLeftプロパティとLineRightプロパティを特定のボタンに設定するには、これが必要です。 "Visual Studio for ItemsPanelTemplateにパネルが含まれている必要があります。 'System.Windows.Controls.ScrollViewer'はパネルではありません。wpf" – Rakr
ちょうど、とラップします。 –
pamidur