نمایش نتایج 1 تا 3 از 3

نام تاپیک: آموزشی: تغییر Render کنترل های دات نت 2005

  1. #1
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    همه جای ایران سرای من است
    پست
    504

    Post آموزشی: تغییر Render کنترل های دات نت 2005

    سلام خدمت همه دوستان عزیز.
    یکی از امکاناتی که در دات نت 2005 قرار داده شده امکان Custom Render بعضی کنترل های دات نت هستش. مثلاَ براحتی میشه برای ToolStrip یا MenuStrip رندر دلخواه و ایجاد کرد. اما چجوری؟؟؟ برای توضیح یه مثال میزنم:
    داخل C#‎ یک پروژه جدید ایجاد کنید از نوع Windows Application. روی فرم یک کنترل ToolStrip و یک Button قرار بدید و یک کلاس به پروژه اضافه کنید و نام کلاس رو MyRender بزارید. وارد کلاس MyRender شده و خط public class MyRender رو به صورت زیر تغییر بدید:

    public class MyRender : System.Windows.Forms.ToolStripRenderer

    حالا داخل کلاس کدهای زیر رو بنویسید:

    protected override void OnRenderToolStripBackground(System.Windows.Forms.T oolStripRenderEventArgs e)
    {
    base.OnRenderToolStripBackground(e);
    Graphics g = e.Graphics;
    using (LinearGradientBrush b = new LinearGradientBrush(new Rectangle(0, 0, e.ToolStrip.Bounds.Width, e.ToolStrip.Bounds.Height), Color.White, Color.Silver, 90))
    {
    g.FillRectangle(b, new Rectangle(0, 0, e.ToolStrip.Bounds.Width, e.ToolStrip.Bounds.Height));
    }
    }
    protected override void OnRenderButtonBackground(System.Windows.Forms.Tool StripItemRenderEventArgs e)
    {
    base.OnRenderButtonBackground(e);

    Graphics g = e.Graphics;
    if (e.Item.Selected)
    {
    if (e.Item.Pressed)
    {
    using (LinearGradientBrush b = new LinearGradientBrush(new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height), Color.Silver, Color.White, 90))
    {
    g.FillRectangle(b, new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height));
    }
    }
    else
    {
    using (LinearGradientBrush b = new LinearGradientBrush(new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height), Color.LightSkyBlue, Color.LightSkyBlue, 90))
    {
    g.FillRectangle(b, new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height));
    }
    }
    }
    }

    حالا به فرم برنامه برگشته و کدهای زیر رو داخل کنترل button بنویسید:

    toolStrip1.RenderMode = ToolStripRenderMode.ManagerRenderMode;
    ToolStripManager.Renderer = new MyRender();

    پس از اجرای برنامه و کلیک روی button خواهید دید که استایل toolStrip تغییر خواهد کرد. میتوان با اضافه کردن سایر قسمت های مربوط داخل کلاس استایل مورد نظر رو ایجاد کرد. این یکی از توانایی های جدید دات نت 2005 میباشد که باعث میشود کاربر نیازی به ایجاد یک کامپوننت جدید برای رندر کنترل نداشته باشد و فقط با ایجاد یک کلاس داخل برنامه این کار رو براحتی انجام بده. این کار رو برای تمام کنترل هایی که خاصیت RenderMode دارند میشه انجام داد.
    موفق باشید.

  2. #2
    دستت درد نکنه، جالب بود. اگه بازم از ایندست تجریبات در زمینه Interface داشتی بی‏زحمت با ما هم در میون بزار مطمئن باش بی‏پاداش نمی‏مونه.

  3. #3
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    همه جای ایران سرای من است
    پست
    504
    خواهش میکتم قابل شما و دوستان عزیز رو نداشت. فعلاَ دارم رو یه کلاس کار میکنم که کنترل ها رو با 3 استایل خود 2005، سیلور و اگه بشه استایل office 12 رندر کنه، تموم شد میزارم برای دانلود که همه دوستان استفاده کنند.

تاپیک های مشابه

  1. render a TRichEdit text onto a canvas را به صورت یک برنامه دلفی در بیاورید
    نوشته شده توسط ali_abbasi22145 در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 3
    آخرین پست: یک شنبه 13 اردیبهشت 1388, 13:07 عصر
  2. تغییر مکان یک div بعد از render
    نوشته شده توسط rezaei manesh در بخش ASP.NET Web Forms
    پاسخ: 8
    آخرین پست: سه شنبه 18 اردیبهشت 1386, 10:48 صبح
  3. تفاوت Render - RenderContents - CreateChildControls چیست؟
    نوشته شده توسط habedijoo در بخش ASP.NET Web Forms
    پاسخ: 8
    آخرین پست: یک شنبه 08 بهمن 1385, 12:18 عصر
  4. پاسخ: 1
    آخرین پست: دوشنبه 06 آذر 1385, 16:11 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •