PDA

View Full Version : چطوری برای برنامه چنین ظاهری ایجاد کنیم؟؟؟



javad_r_85
دوشنبه 15 فروردین 1390, 10:27 صبح
سلام

برنامه ای که تصویرش را در زیر قرار دادم با سی شارپ نوشته شده و واسم جالب بود که بدون استفاده از هیچ کامپوننتی تونسته همچین ظاهری را ایجاد کند از دوستانی که در این زمینه مطلع هستند خواهش می کنم بفرمایند که چطور چنین ظاهری برای برنامه درست کنم؟؟؟

68263

ایمان مدائنی
دوشنبه 15 فروردین 1390, 10:51 صبح
دوست عزيز اگه كامپوننت هاي tELERIK رو داشته باشي همه اينها در اون هست
قسمت بالاي فرم ROBIN BAR هست و بقيه پنل
ميتوني TELERIK Q3 2010 رو دانلود كني و بري حالشو ببري

shadi khanum
دوشنبه 15 فروردین 1390, 11:19 صبح
کامپوننت های جانوس هم چنین ابزاری رو دارن. زیاد سخت نیست

javad_r_85
دوشنبه 15 فروردین 1390, 13:39 عصر
نه دیگه دوستان دقت نکردین عرض کردم از کامپوننتی استفاده نکرده اینا که خودمم می دونم با کامپوننت می شه این کارو کرد

habib_namvar
دوشنبه 15 فروردین 1390, 16:48 عصر
ساختن چنین فرمی با استفاده از آیکن و تصاویر فک نکنم کار خاصی داشته باشه

exlord
دوشنبه 15 فروردین 1390, 18:23 عصر
نه دیگه دوستان دقت نکردین عرض کردم از کامپوننتی استفاده نکرده اینا که خودمم می دونم با کامپوننت می شه این کارو کرد
از کجا اینقدر مطمئنی ؟ قسمت بالاش Ribbon Bar هستش ... شرکت های زیادی از این ساختن ... کنترل open source هم داره که من خودم ازش استفاده کردم ... فقط باید خودت RTl بکنیش ...
پنل هایی پایینی رو میتونی خودت با inherit کردن Panel توی یه کلاس و ovverrride کردن متد onPaint خودت هرجوری که دوست داری paint کنی ... یه نگاهی به اینجا (http://barnamenevis.org/showthread.php?278476-%D9%84%D9%88%D8%AF-%D8%A7%D9%87%D8%B3%D8%AA%D9%87-%D9%81%D8%B1%D9%85-%D9%88-%DA%A9%D9%86%D8%AA%D8%B1%D9%84-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%B5%D9%88%D8%B1%D8%AA-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%B9%DA%A9%D8%B3-%D8%AF%D8%B1-%D8%A7%D9%86%D9%87%D8%A7&p=1229255&viewfull=1#post1229255)بنداز من برا فرم نوشتم ... میتونی ازش کمک بگیری ...

Nima NT
دوشنبه 15 فروردین 1390, 20:29 عصر
درست کردن همچین چیزی بدون استفاده از کامپوننت کار حضرت فیله !
بعید میدونم بدون کامپوننت باشه چون اگر کسی بخواد کل Ribbon و ... رو برای برنامه خودش از اول بنویسه باید بیشتر از برنامه برای ظاهر اون زمان بذاره.

shadi khanum
دوشنبه 15 فروردین 1390, 22:12 عصر
اون کامپوننت بالا میتونه ribbon هم نباشه! یه panel آبی که توش یه groupbox گذاشته شده و توی groupbox هم button با استایل Flat که backgroudimage شون اون اشکال. پایینی ها هم که panel یا Groupbox! فک نمیکنم سخت بوده باشه، فقط سلیقه بکار برده شده

ایمان مدائنی
دوشنبه 15 فروردین 1390, 23:17 عصر
دوستان من شرط میبندم که اونها کامپوننت هستن
چون نمونه همشون رو بدون تغییر در پک های کامپوننت دیدم
میتونم اگه خواستید نمونه هم بزارم ببینید

shadi khanum
دوشنبه 15 فروردین 1390, 23:38 عصر
دوستان من شرط میبندم که اونها کامپوننت هستن
چون نمونه همشون رو بدون تغییر در پک های کامپوننت دیدم
میتونم اگه خواستید نمونه هم بزارم ببینید
بله ، نمونه تمامشون هست ولی دوستمون میگه که میدونه که کامپوننت نیست!

javad_r_85
سه شنبه 16 فروردین 1390, 01:04 صبح
بله کامپوننت نیست من به سورس برنامه دست پیدا کردم یه کلاسی هست واسه قسمت بالاش فکر کنم





public class RibbonButton : Button
{
// Fields
[Description("Enables displaying the info form. Default value is false. Added by Omid Vejdankhah."), DefaultValue(false)]
private bool _enableInfoForm;
private Image _img;
private Image _img_back;
private Image _img_click;
private Image _img_fad;
private Image _img_on;
private Color _infocolor;
private string _infocomment;
private string _infoimage;
private string _infotitle;
private Color _TextColor;
private Image _toshow;
private bool b_fad;
private int i_fad;
private int i_value;
private InfoForm info;
private string s_filename;
private string s_folder;
private int t;
private int t_end;
private Timer timer1;
private Timer timer2;

// Methods
public RibbonButton();
public Side GetInfoLocation();
protected override void OnMouseDown(MouseEventArgs mevent);
protected override void OnMouseEnter(EventArgs e);
protected override void OnMouseHover(EventArgs e);
protected override void OnMouseLeave(EventArgs e);
protected override void OnMouseUp(MouseEventArgs mevent);
protected override void OnPaint(PaintEventArgs pevent);
protected override void OnPaintBackground(PaintEventArgs pevent);
public void PaintBackground();
public void ShowInfo();
private void timer1_Tick(object sender, EventArgs e);
private void timer2_Tick(object sender, EventArgs e);

// Properties
public bool EnableInfoForm { get; set; }
public string filename { get; set; }
public string folder { get; set; }
public Image img { get; set; }
public Image img_back { get; set; }
public Image img_click { get; set; }
public Image img_on { get; set; }
public Color InfoColor { get; set; }
public string InfoComment { get; set; }
public string InfoImage { get; set; }
public string InfoTitle { get; set; }

// Nested Types
public enum Side
{
UpLeft,
UpRight,
DownLeft,
DownRight
}
}

javad_r_85
سه شنبه 16 فروردین 1390, 01:08 صبح
public class RibbonMenuButton : Button
{
// Fields
private e_arrow _arrow;
private Color _baseColor;
private Color _baseStroke;
private Color _colorStroke;
private e_groupPos _grouppos;
private e_imagelocation _imagelocation;
private int _imageoffset;
private bool _ispressed;
private bool _keeppress;
private Point _maximagesize;
private Point _menupos;
private Color _onColor;
private Color _onStroke;
private Color _pressColor;
private Color _pressStroke;
private int _radius;
private e_showbase _showbase;
private e_splitbutton _splitbutton;
private int _splitdistance;
private e_showbase _tempshowbase;
private string _title;
private int A0;
private int B0;
private int G0;
private int i_fA;
private int i_factor;
private int i_fB;
private int i_fG;
private int i_fR;
private int i_mode;
private int imageheight;
private int imagewidth;
private bool mouse;
private int offsetx;
private int offsety;
private int R0;
private Timer timer1;
private int xmouse;
private int ymouse;

// Methods
public RibbonMenuButton();
public void DrawArc(Rectangle re, GraphicsPath pa);
public void DrawArrow(Graphics gr);
public void DrawImage(Graphics gr);
public void DrawShadow(Rectangle re, GraphicsPath pa);
public void DrawString(Graphics gr);
public void FillGradients(Graphics gr, GraphicsPath pa);
public void FillSplit(Graphics gr);
public Color GetColor(int A, int R, int G, int B);
public Color GetColorIncreased(Color color, int h, int s, int b);
protected override void OnCreateControl();
protected override void OnMouseDown(MouseEventArgs mevent);
protected override void OnMouseEnter(EventArgs e);
protected override void OnMouseLeave(EventArgs e);
protected override void OnMouseMove(MouseEventArgs mevent);
protected override void OnMouseUp(MouseEventArgs mevent);
protected override void OnPaint(PaintEventArgs pevent);
protected override void OnResize(EventArgs e);
private void timer1_Tick(object sender, EventArgs e);
public void UpdateLeave();

// Properties
public e_arrow Arrow { get; set; }
public Color ColorBase { get; set; }
public Color ColorBaseStroke { get; set; }
public Color ColorOn { get; set; }
public Color ColorOnStroke { get; set; }
public Color ColorPress { get; set; }
public Color ColorPressStroke { get; set; }
public int FadingSpeed { get; set; }
public e_groupPos GroupPos { get; set; }
public e_imagelocation ImageLocation { get; set; }
public int ImageOffset { get; set; }
public bool IsPressed { get; set; }
public bool KeepPress { get; set; }
public Point MaxImageSize { get; set; }
public Point MenuPos { get; set; }
public int Radius { get; set; }
public e_showbase ShowBase { get; set; }
public e_splitbutton SplitButton { get; set; }
public int SplitDistance { get; set; }
public string Title { get; set; }

// Nested Types
public enum e_arrow
{
None,
ToRight,
ToDown
}

public enum e_groupPos
{
None,
Left,
Center,
Right,
Top,
Bottom
}

public enum e_imagelocation
{
Top,
Bottom,
Left,
Right,
None
}

public enum e_showbase
{
Yes,
No
}

public enum e_splitbutton
{
No,
Yes
}
}

arefba
سه شنبه 16 فروردین 1390, 02:53 صبح
بچه ها نظرتون در مورد اين چيه
همه کامپوننت هاش رو خودم برنامه نويسي کردم
يکبار براي هميشه
البته بقيه صفحه هاش خوشگل تره اما حوصله عکس گرفتن رو نداشتم
http://arefvasara.persiangig.com/document/login.JPG

kazemi62
جمعه 16 اردیبهشت 1390, 17:16 عصر
بچه ها نظرتون در مورد اين چيه
همه کامپوننت هاش رو خودم برنامه نويسي کردم
يکبار براي هميشه
البته بقيه صفحه هاش خوشگل تره اما حوصله عکس گرفتن رو نداشتم
http://arefvasara.persiangig.com/document/login.JPGبه نظر من خیلی عالیه.میشه واسه من کامپوننتاتو بفرستی؟یا به منم کامپوننت نویسیو یاد بدی؟؟این ایمیلم من منتظر جوابتونم موفق باشید mohsen_kazemi2008@yahoo.com

javad_r_85
جمعه 16 اردیبهشت 1390, 20:23 عصر
بچه ها نظرتون در مورد اين چيه
همه کامپوننت هاش رو خودم برنامه نويسي کردم
يکبار براي هميشه
البته بقيه صفحه هاش خوشگل تره اما حوصله عکس گرفتن رو نداشتم


با استفاده از WPF این کارو کردی؟؟؟