سلام دوستان
چجوری میشه همچین فرمی درست کرد؟
Form.png
یا این؟
Untitled-1.png
سلام دوستان
چجوری میشه همچین فرمی درست کرد؟
Form.png
یا این؟
Untitled-1.png
با WPF یه سری مجموعه به شکل MessageBox داشتم اکثر نمونه کارها به همین شکل بود میتونید WPF رو امتحان کنید...
تصاویر زیر فلش اشاره رو ندارن اگه پیدا کردم برات میزارم حالا این رو از اینجا دانلود کن تا ببینم پیدا میشه...
نه عزیزم با #C
نه عزیزم خوب به فرم نگاه کن
اون یه فرم معمولی که کنترل باکس فالس شده و هیچ تایتل نداره
مشکل من اون فلش هستش
مثل اینکه باید برم از برنامه نویسان فایر فاکس بپرسم
آخرین ویرایش به وسیله Farshid007 : دوشنبه 30 مرداد 1391 در 15:56 عصر
بابا دوستان کمک کنید دست به دست هم راه حلشو پیدا کنیم
مطمـن باشید به درد شما هم می خوره
باور کنید تکنولوژی استفاده شده WPF هستش و اگه هم نباشه C یا C++ هستش. سوال کردید ما رو هم در جریان بزارید...
من حدس می زنم با toolStrip می شه
ولی نه با مایکروسافت با یک کمپانی دیگه
سلام دوست عزیز
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
TransparencyKey = SystemColors.Control;
}
private void DrawRoundedRectangle(Graphics gfx, Rectangle Bounds, int CornerRadius, Pen DrawPen, Color FillColor)
{
int strokeOffset = Convert.ToInt32(Math.Ceiling(DrawPen.Width));
Bounds = Rectangle.Inflate(Bounds, -strokeOffset, -strokeOffset);
DrawPen.EndCap = DrawPen.StartCap = LineCap.Round;
GraphicsPath gfxPath = new GraphicsPath();
gfxPath.AddArc(Bounds.X, Bounds.Y, CornerRadius, CornerRadius, 180, 90);
gfxPath.AddArc(Bounds.X + Bounds.Width - CornerRadius, Bounds.Y, CornerRadius, CornerRadius, 270, 90);
gfxPath.AddArc(Bounds.X + Bounds.Width - CornerRadius, Bounds.Y + Bounds.Height - CornerRadius, CornerRadius, CornerRadius, 0, 90);
gfxPath.AddArc(Bounds.X, Bounds.Y + Bounds.Height - CornerRadius, CornerRadius, CornerRadius, 90, 90);
Point[] points = { new Point(Bounds.X + 10, Bounds.Y), new Point(Bounds.X + 25, Bounds.Y - 15), new Point(Bounds.X + 40, Bounds.Y) };
gfxPath.CloseAllFigures();
gfx.FillPolygon(Brushes.SteelBlue, points);
gfx.FillPath(new SolidBrush(FillColor), gfxPath);
gfx.DrawPath(DrawPen, gfxPath);
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Rectangle Clinet = new Rectangle(ClientRectangle.X, ClientRectangle.Y + 15, ClientRectangle.Width, ClientRectangle.Height - 15);
DrawRoundedRectangle(this.CreateGraphics(),Clinet, 20, new Pen(Color.SteelBlue, 4), Color.White);
}
}
آخرین ویرایش به وسیله behzad1986 : دوشنبه 30 مرداد 1391 در 02:08 صبح
لطفا در قالب پروژه بزار ببینیم چجور شده!
سلام سایت اجازه الصاق ضمیمه بهم نمی ده ( میده Error)
یک پروژه ایجاد کنید
یه فرم ّForm1
به حالت کدش وارد بشید و کد رو به جای کد فرم کپی کنید
using System.Drawing.Drawing2D;
رو به Usingفرم اضافه کنید
آخرین ویرایش به وسیله behzad1986 : دوشنبه 30 مرداد 1391 در 13:13 عصر
ممنون دوست عزیز اقای بهزاد
اما راهش این نیست
شما با حالت گرافیکی فرمی به اون شکل درست کردی دستت هم درد نکنه
اما اون یه فرمی هستش که خاصیت های زیر را داره:
ControlBox = false;
Text = "";
من با اینا مشکلی ندارم
من با اون فلش مشکل دارم
اگه خودت فایر فاکس داری یه CTRL+D بزن متوجه می شی!
منظورت اینه که می خوای با کلیک روی باتنت یه فرم اونطوری باز شه یا می خوای یه فرم مثله اونی که باز می شه درست کنی؟
سلام
متوجه هستم ولی .net هم محدودیت داره!
برنامه فایر فکس با C++ نوشته شده .
شاید باد Regionحل بشه! بجای OnPaint اون GraphicePath رو به Region فرم انتصاب بدین بعد فرم رو شیشه ای کنید . ولی شیشهای کردن فرم فقط تو 7 و یستا جواب میده
از کنترل های DotNetBar استفاده کن
پس چجوری باید خارج از فرم یه FillPolygon بزنیم؟؟
نیازی نیست خارج از فرم باشه! اگه از Region استفاه کنید!
اخه اون که با FillPolygon ساخته نشده
اگه دقت کنی سایه هم داره مثل این می مونه که فرم از حالت مستطیلی خودش خارج شده و یه تیکه اش مثلثی شده
یک بار گفتم دوباره میگم همچین شکلی نمیشه توی C# طراحی کرد حتی با API بهترین و ساده ترین راهش طراحی کامپوننت با WPF هستش (زبان های اسکریپتی بهترین روش هستن)
برای دایره کردن یه فرم چند تا API فراخوانی میکردیم اونم فقط قسمتی از فرم رو نمایش نمیداد...
شدن که میشه ولی یه مقدار پیچیدست.
یه مبحث راجبش داشتم ، ولی سیستم من خیلی شلوغ پلوغه و باید دنبالش بگردم.
در هر حال با xml میشه.
من اومدم!!!
کد رو تو رویداد یه با تن بنویس.
این دوتا رو هم using کن.
در ضمن این یه مثاله که الان نوشتم تا بفهمید میشه و برای اون چیزی که شما می خواهید باید یه کم ویرایش بشه.
using System.Drawing.Drawing2D;
کد رویداد باتن :
GraphicsPath path1 = new GraphicsPath();
path1.AddEllipse(0x55, 0, 250, 250);
path1.AddEllipse(0x87, 50, 150, 150);
Region = new Region(path1);
BackColor = Color.Red;
امید وارم به دردت بخوره ، موفق باشی.
آخرین ویرایش به وسیله ehsan7007 : دوشنبه 30 مرداد 1391 در 16:44 عصر
وا؟ جلل خالق!
این چیه دیگه؟
System.Security.Permissions واسه چیه؟
اولا که کد ادامه داشته.System.Security.Permissions واسه چیه؟
دوما گفتم که اون چیزی که تو می خوای نیست!! تو باید ترکیبی از مستطیل و مثلثش رو درست کنی.
با Region و شیشه ای کردم فرم تست کردم جواب نمی ده!
همونطور که گفتم با xml می شه اما از xml چطوری می خوای تو win form applicartin استفاده کنی؟
برای همین بهترین راه WPF هستش. تازه تو WPF که کد برنامت رو به زبان سی شارپ می نویسی!!
تا حالا دقت نکرده بودم، تصویر نمونه ای که قرار داده بودید رو که دیدم گمان کردم یک فرم استاندارد ویندوز ئه که تغییر کرده، اما حالا که بررسی می کنم
می بینم الزاما اصلا فرم نیست، میزان سایه پنجره اش با تم ویندوز مطابقت نداره. اگر قرار بود یک پنجره نیمه شفاف مستقل از فرم اصلی و متحرک باشه
(بشه جابجایش کرد) دردسر داشت چون هم خود فرم باید نیمه شفاف می بود و هم داخلش کنترل های غیر شفاف نمایش داده می شد، اما حالا که
موقعیت اش ثابته و داخل فضای فرم اصلی هم نمایش داده میشه اصلا نیازی به فرم ساختن و گرفتاری هایش نداره. مخصوصا که قراره تا زمانی که در اون
فرم اطلاعات وارد میشه بقیه فرم فعال نباشه.
این تاپیک رو ببینید، کدی نوشته بودم که فرم تیره میشه :
سوال: طراحی فرم
کاری که باید انجام بشه تو همون مایه هاست، تصویر تیره نشده فرم و یک تصویر نیمه شفاف PNG که شبیه به یک فرم ئه رو بصورت یک Panel روی بقیه کنترل ها
نشون می دهیم، شما در این تصویر مثلث یا هر شکل غیر عادی دیگری را چه سایه دار و چه بی سایه می توانید نشان دهید، محدودیتی هم ندارید چون یک تصویره.
هر چه که در روی فرم بوده هم تصویرش در این Panel هست، البته متحرک نیست، یعنی شفافیت اش گول زننده است و اگر کنترل های زیرین تغییر کنند
ظاهرا تغییری نشون داده نمیشه.
کنترل های زیرین هم اساسا کار نمی کنند چون همه شون پشت این Panel اند. بعد روی این Panel هر جور کنترل هایی که قرار فعال باشند رو نمایش می دهید.
هر وقت که کار فرم تمام شد یا روی ناحیه بیرونی Panel کلیک شد، فرم رو به وضعیت قبلی بر می گردانیم و Panel رو حذف می کنیم.
سلام
این رو دوستان تست کنن ولی هنوز کار داره
بله درست اون یا فرم نیست یا فرم معمولی نیست
چون وقتی که رنگ Aero ویندوز رو عوض می کنم رنگ تمام فرم ها هم باید عوض بشه اما اون نمی شه
شاید هم همینطوره
اما یه خورده بهتر توجه کنید گوشه های فرم حالت Aero ویندوز رو داره و پشتش معلوم میشه
ای فایر فاکس نامرد
معلوم نیست که پدر سوخته ها چه غلطی کردن که همه توش موندن
میشه، کدش رو بزارید...ا WPF یه سری مجموعه به شکل MessageBox داشتم اکثر نمونه کارها به همین شکل بود میتونید WPF رو امتحان کنید...
تصاویر زیر فلش اشاره رو ندارن اگه پیدا کردم برات میزارم حالا این رو از اینجا دانلود کن تا ببینم پیدا میشه...
لینک رو همون جا گذاشته بودم.