كيف يمكنني إنشاء حالة تحوم الماوس على Silverlight لوحدة مكدس؟

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

سؤال

أحاول إنشاء حالة تحوم الماوس التي يغير مجموعتها عندما يكون الماوس فوق لوحة المكدس.

لقد قمت بإنشاء الحالة، وقم بإنشاء حدث Mouse_Enter لوحدة المكدس، وعلى الرمز الموجود في ملف CS، لدي التعليمات البرمجية التالية في حدث Mouse_Enter.

mouseover.begin ()؛

حيث Musover هو اسم القصة المصورة، ولكن عندما يحوم الماوس فوق لوحة المكدس أو حتى انقر فوق لوحة المكدس، لم يحدث شيء ما أفتقده؟

شكرا

Playkid.

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

المحلول

أنا أحسب نفسي.

مع هذا الرمز:

visualstatemanager.gotostate.

شكرا لكم جميعا.

نصائح أخرى

هل أنت متأكد من إطلاق الحدث (لقد سلكت حتى الحدث بشكل صحيح)؟ حاول التحقق من استخدام مربع رسالة أو شيء من هذا. فيSystem.Windows.MessageBox.Show())

هل أنت متأكد من أن لوحة القصة المصورة تعمل بشكل جيد في مواقف أخرى (جربتها على تحميل الصفحة أو أي شيء؟)

إذا كان كل من هذه العمل، فيرجى توضيح كيفية تقدمك بإضافة معالج الأحداث.

في تجربتي، لا يعمل الحدث Mouse_enter إلى اللوحة لأن المحتوى الموجود داخل لوحة ينتهي بسرقة الحدث. الحل المعتاد هو إعداد هدف شفافة يغطي المنطقة التي أريد أحداث الماوس والحفاظ عليها في الجزء العلوي من الشجرة البصرية. لذلك يبدو XAML شيء مثل:

<StackPanel x:Name="ContentPanel" SizeChanged="ContentPanelSizeChanged" >
    < /*Some content here */ >
</StackPanel>
<Canvas x:Name="HitTarget" Mouse_Enter="HitTargetMouseEnter" />

ثم يحدد معالج ContentPanelSizeChanged حجم قماش Hittarget ليكون الحجم الفعلي (المقدمة) من StackPanel. يعمل نفس الشيء في أحداث MouseButtondown وأود أن أفترض أنه يعمل لأحداث MouseWheel أيضا. أوصي بمحاولة اقتراحات استكشاف الأخطاء وإصلاحها في Senthil، ولكن إذا لم تتمكن من إطلاق الحدث على الإطلاق (الذي أفترضه هو المشكلة)، فامنح هذه المحاولة.

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