الشفافية الافتراضية ثلاثية الأبعاد مع التحكم في مخطط ASP.NET؟
-
26-09-2019 - |
سؤال
مثل اثنين من اللاعبين قبلي هناك والثاني هناك لدي صعوبة في الرسم البياني ثلاثي الأبعاد.
كيف تجبرهم على أن يكونوا شفافين مثل هذه الصورة:
مأخوذة من مثال مخطط المنطقة ثلاثية الأبعاد يتم شحنه مع ASP.NET المخطط عناصر التحكم. هذا الرسم البياني لديه chartcolorpalette.brightpastel البليت ، ولكن شفاف.
لدي أيضا مخطط ثلاثي الأبعاد مع chartcolorpalette.brightpastel لوحة ، ولكنها ليست شفافة وما زلت لا أستطيع العثور على طريقة لكيفية جعلها شفافة مثل الرسم البياني للمثال. (بعد فحص مثال الترميز و codeBehind):
الطريقة الوحيدة التي وجدتها هي ضبط لون السلسلة مع قناة ألفا للشفافية ، أو استخدام لوحة الألوان بألوان شفافة (على سبيل المثال chartcolorpalette.semitransparent) ولكن يجب أن تكون هناك طريقة افتراضية أخرى أفتقدها.
السبب في أنني بحاجة حقًا إلى معرفته هو أنني أقوم بإنشاء الرسوم البيانية دون أي رمز وراء استخدام الترميز ، لذلك أجد أنه من الضروري بعض الشيء لإنشاء قصاصات التعليمات البرمجية فقط بسبب هذا.
شكرا جزيلا لك على أي إجابات.
تعديل: أنا أستخدم إصدار .NET 3.5 من مخططات ASP.NET.
المحلول
كنت نفس المشكلة هنا. حل باستخدام هذا:
// After all series manipulation, add this
chart.ApplyPaletteColors();
foreach (var serie in chart.Series)
serie.Color = Color.FromArgb(220, serie.Color);
نصائح أخرى
أرى أنك على هذه الموضوع أيضا. لسوء الحظ ، تحتاج إلى استخدام الألوان مع قناة ألفا من أجل ضبط الشفافية AFAIK
هنا نظرة عامة جيدة على اللوحات المتاحة وبعض الأساسيات على التلاعب بها
أظن أنه يمكنك إنشاء لوحة جديدة من خلال التكرار على الألوان في لوحة الباستيل المشرقة وإضافة قناة ألفا - إذا قمت بذلك بستاتيك عالمي ، ربما كجزء من منطق init الخاص بك ، يجب أن تكون قادرًا على الإشارة الأمر بسهولة - إذا كنت لا تريد أن يكون ذلك أي CodeBehind ، أنت؟ قد؟ تكون قادرًا على بيانات اللوحة المخصصة الخاصة بك إلى خاصية CustomPalette ، لكن لا يمكنني القول على وجه اليقين.
إذا كنت تستخدم لوحة ، وليس لونًا واحدًا لكل سلسلة ، فيجب عليك ضبط اللون لكل نقطة:
myChart.ApplyPaletteColors();
foreach (var series in myChart.Series)
{
foreach (var point in series.Points)
{
point.Color = Color.FromArgb(220, point.Color);
}
}