اي فون مثل التمرير على سيلفرلايت مربع القائمة

StackOverflow https://stackoverflow.com/questions/817441

  •  03-07-2019
  •  | 
  •  

سؤال

وأحتاج إلى مربع القائمة مع وظيفة اي فون تشبه ل Silverlight. وهذا هو، الرسوم المتحركة التمرير، وانقر واسحب لتمرير. ستواصل التمرير قليلا بعد الماوس لأعلى الحدث بناء على "سرعة" من السحب. لقد بحث والعثور على أي البائعين تحكم توفير ذلك. لذا السؤال هو كيف ينبغي أن نبني عليه؟ انا بحاجة الى بعض النصائح للبدء.

وهناك قسمين على هذا السؤال:

والجزء 1، كيفية الحصول على التمرير الرسوم المتحركة من مربع القائمة.

والجزء 2، وكيفية بناء "القابل للسحب" التمرير، وأنا أعتقد أن وضع قماش على رأس وتتبع mouseevent، ومحاكاة بعض الفيزياء. أن بعض التلميحات هنا كانت كبيرة.

والشكر لارسي.

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

المحلول

وقبل فترة أدليت به عنصر تحكم فعلت شيئا من هذا القبيل. وضعت كل ما فعلته لstackpanel داخل قماش. فقط ضبط canvas.top من stackpanel كامل على mousemove (في حين يتم الضغط الماوس). لتحريك التمرير بعد mouseup، كنت حقا بحاجة فقط لتتبع نقل كمية وتطبيق الرسوم المتحركة إلى خاصية canvas.top.

نصائح أخرى

وفيما يلي عينة كاملة لطيف لبرنامج الأغذية العالمي أن يفعل كل من جر التمرير، وبطريقة آلية نفض الغبار / القصور الذاتي التمرير. لست متأكدا ما اذا كان يحتاج إلى تغيير أي شيء والعمل على انجاحه في Silverlight.

HTTP: //sachabarbs.wordpress.com/2009/12/24/friction-scrolling-now-an-wpf-attached-behaviour-too/

ومجرد ملاحظة أن كما هو لا يمكنك النقر واسحب الرأي إذا نقرت على الطفل (مثل الأزرار) أن القبض على مدخلات الماوس. انتهى فعليا حتى تعديل هذه العينة لذلك يمكن أن تزال سحب التمرير عند النقر على الأطفال، في حين لا يزال السماح للأطفال لقبول إدخال الماوس عندما لا تكون سحب التمرير.

وهذا سيكون من الأسهل في Silverlight 3 من سيلفرلايت 2، لكنه ليس مستحيلا في 2.

وهذا الفيديو من MIX 09، مبنى مايكروسوفت سيلفرلايت ضوابط ، ينبغي أن تساعدك.

وظيفة أخرى من موقع ساشا الحلاق:

http://sachabarber.net/؟p=481

ورمز سهم إرميا موريل أن تطبق الرسوم المتحركة التمرير مع الجمود في العرف ContentControl (قالب مع وشملت ScrollViewer)

<ScrollViewer x:Name="sv1" Width="500" Height="285">
   <StackPanel x:Name="sp1" Width="450" Height="285">
   </StackPanel>
</ScrollViewer>

ومن خلال تحديد نقاط البيع. وNEG. الهوامش إلى stackpanel داخل scrollviewer يمكنك إنشاء تأثير التمرير.

onScroll_Up()
{
  //Change this based on your scrollviewer dimension
  if (this.sv1.ScrollableHeight < 300)
  {
    Thickness thickness = this.sp1.Margin;
    thickness.Top += 50;
    this.sv1.SetValue(StackPanel.MarginProperty, thickness);
  }   
}


onScroll_Down()
{
  if (this.sv1.ScrollableHeight > 1)
  {
    Thickness thickness = this.sp1.Margin;
    thickness.Top += -50;
    this.sv1.SetValue(StackPanel.MarginProperty, thickness);
  }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top