سؤال

ودعونا نقول لدي مربع القائمة مع العديد من العناصر بحيث يأتي التمرير العمودي، ولكن لقد إخفاء شريط التمرير مع

ScrollViewer.VerticalScrollBarVisibility="Hidden"

هل هناك أي طريقة يمكنني إضافة زر التي من شأنها أن انتقل لأسفل بالنسبة لي؟ رابعا tryed لإضافة

Command="ScrollBar.LineDownCommand" 

وإلى زر ولكن أن لم يكون له أي تأثير.

هل كانت مفيدة؟

المحلول

وتحتاج إلى معرفة WPF من أين تبدأ تبحث عن معالج الأوامر. دون أن يخبر ذلك، فإنه سوف تبدأ في النظر من Button ولم تجد أي شيء يعالج LineDownCommand. لسوء الحظ، فإن تحديد ذلك إلى ListBox لا يكفي لأن ScrollViewer هو داخل وListBox كجزء من القالب، لذلك لا يزال WPF لن تجد ذلك.

وتعيين إلى واحدة من ListBoxItems غير ناف، ولكنها تعمل:

<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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top