سؤال

انا املك Canvas مع ترجمة مقياس تطبق في XAML. استخدام DrawingContext ارسم خطوطا على Canvas. وبعد أحتاج الآن إلى إضافة نص إلى الشاشة. اعتقدت مع النص المنسق، يمكنني تطبيق ترجمة، ولكن لا يوجد نص منسق أو DrawingContext يقبل RenderTransform. وبعد كيف يمكنني تطبيق ترجمة مقياس للنص حتى ستتعرض على الترجمة من القماش؟

 ftext = New FormattedText("N", CultureInfo.GetCultureInfo("en-us"), Windows.FlowDirection.LeftToRight, face, Me.DBFontSize, FalconDataBlock.Foreground)
 context.DrawText(ftext, .TargetLineInfo.EndAsWinPoint)
هل كانت مفيدة؟

المحلول

في معظم تطبيقات UI، بدلا من استخدام DAGALCONTEXT، قد يكون الشيء الصحيح الذي يجب القيام به هو إضافة TextBlock للأطفال إلى قماش، وقم بتغيير RENDERTRANSFORMORSFORM.

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

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