سؤال
ودعونا نقول لدي مربع القائمة مع العديد من العناصر بحيث يأتي التمرير العمودي، ولكن لقد إخفاء شريط التمرير مع
ScrollViewer.VerticalScrollBarVisibility="Hidden"
هل هناك أي طريقة يمكنني إضافة زر التي من شأنها أن انتقل لأسفل بالنسبة لي؟ رابعا tryed لإضافة
Command="ScrollBar.LineDownCommand"
وإلى زر ولكن أن لم يكون له أي تأثير.
المحلول
وتحتاج إلى معرفة WPF من أين تبدأ تبحث عن معالج الأوامر. دون أن يخبر ذلك، فإنه سوف تبدأ في النظر من Button
ولم تجد أي شيء يعالج LineDownCommand
. لسوء الحظ، فإن تحديد ذلك إلى ListBox
لا يكفي لأن ScrollViewer
هو داخل م> وListBox
كجزء من القالب، لذلك لا يزال WPF لن تجد ذلك.
وتعيين إلى واحدة من ListBoxItem
s غير ناف، ولكنها تعمل:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ListBox x:Name="_listBox" ScrollViewer.VerticalScrollBarVisibility="Hidden">
<ListBoxItem x:Name="_listBoxItem">One</ListBoxItem>
<ListBoxItem>Two</ListBoxItem>
<ListBoxItem>Three</ListBoxItem>
<ListBoxItem>One</ListBoxItem>
<ListBoxItem>Two</ListBoxItem>
<ListBoxItem>Three</ListBoxItem>
<ListBoxItem>One</ListBoxItem>
<ListBoxItem>Two</ListBoxItem>
<ListBoxItem>Three</ListBoxItem>
<ListBoxItem>One</ListBoxItem>
<ListBoxItem>Two</ListBoxItem>
<ListBoxItem>Three</ListBoxItem>
</ListBox>
<Button Grid.Row="1" Command="ScrollBar.LineDownCommand" CommandTarget="{Binding ElementName=_listBoxItem}">Scroll Down</Button>
</Grid>
</Window>
وهناك طريقة أفضل للقيام بذلك سيكون إما إعادة قالب وListBox
وعصا Button
داخل القالب، أو إلى سلك حتى CommandTarget
في التعليمات البرمجية.
نصائح أخرى
وكان التطبيق حيث كنت أرغب في التحكم في التمرير من ScrollViewer يدويا. في الأساس، وأنا حصلت على إشارة إلى ScrollViewer ومن ثم استخدام أسلوب ScrollToHorizontalOffset () للسيطرة على التمرير. وفيما يلي الوظائف بلوق حيث شرح لي عملية اعتدت:
http://www.developingfor.net/wpf /fun-with-the-wpf-scrollviewer.html
http://www.developingfor.net/wpf /more-fun-with-wpf-scrollviewer.html