سؤال

في معالجة مجموعة من البنود، كنت أرغب في عرض صورة موحدة لوضع المجموعة، لذلك جعل أساسا الشبكة عدد من progressbars مع خلفيات شفافة والمقدمات مختلف الألوان كلها في نفس الخلية.

وأنا على التوالي في بعض القطع الأثرية الشفافية (شريط الأرجواني الأرجواني الواقع تحت الأخضر، وأحيانا يرسم على القمة، الخ) وذلك فقط يبدو الإسراف قليلا. لذا، قررت أن تجعل بلدي، ولكن الآن أنا عندي قليلا من الشلل على كيفية القيام بذلك. هل يمكنني استخدام DrawingContext في OnRender FrameworkElement، أم أن هناك شيئا أكثر بساطة؟ هناك مجموعة من القواعد العامة عندما يتعلق الأمر جعل التحكم الخاصة بك؟

وتأملت التحول إلى الرسم البياني منذ تلك هي من السهل الحصول عليها، ولكن الوقت قد حان لها أنا فعلت شيئا لا خارج على الرف.

وشكرا!

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

المحلول

ولست متأكدا تماما كيف تعتزمون progressbar الجمع بين تقدمات مختلفة، ولكن إذا أقول أبعد على طول التقدم في الجزء السفلي من مؤشر z والأقل على طول التقدم في الجزء العلوي، ثم كنت تفعل شيء على غرار ما يلي:

1) أود ربما إنشاء عنصر تحكم المستخدم لهذا progresbar جديدة.

2) يمكن أن يكون لها خاصية تسمى NumberOfProgresses، التي ترتبط مع مجموعة تحتوي على مركز سعيد تقدم.

و3) سيتم تمثيل كل التقدم بواسطة عنصر الحدود (أو ربما شيء أكثر ملاءمة فوق شجرة البصرية)، لأنه عنصر تحكم WPF بسيطة مع خاصية الخلفية. سيتم تعيين الخاصية الخلفية لطيف أسلوب التقدم تبحث ولون التقدم يمكن أن تكون ملزمة في أسلوب القول الملكية borderbrush الحدود و. مما يجعل من السهل تعيين لون التقدم.

و4) أن عنصر تحكم المستخدم أن يكون UpdateProgress الطريقة التي يأخذ قيمة النسبة المئوية ومؤشر على التقدم في مجموعة كمعلمات.

و5) كما يتم تحديثها مع التقدم يمكنك إما، مجرد حساب العرض المناسب (تحكم المستخدم العرض الفعلي * نسبة مئوية) بالنسبة للحدود ولعب حولها مع مؤشر Z للحصول عليه عرض في أعلى / أسفل، أو كومة من الحدود horizontaly، تعيين الأقل على طول التقدم كما أولا، ثم لبقية عن التقدم كنت قد لsubstract تقدمات أطوال السابقة للحصول على نفس التأثير.

وهذا من شأنه أن الطريق لن يكون هناك شفافية الناجم عن القطع الأثرية ولا OnRender () ... فتذكروا، في WPF ينبغي أن يكون هناك أي سبب لفوضى مع OnRender هذا وOnRender ذلك، مثل كان مطلوبا في WinForms عناصر مع OnPaint. مجرد إعداد العناصر عبر رمز للحصول على الشكل الذي تريد، والسماح WPF تفعل ذلك يتم تقديمها.)

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

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