PDA

View Full Version : سوال: چرخش text box با زاویه دلخواه



m-etemadi
دوشنبه 27 خرداد 1387, 07:07 صبح
سلام
عزیزان می خوام یک text box رو تو شی شارپ با یک زاوبه دلخواهی بچرخونم لطفا بگید چکار باید کنم.

Mahdi.Kiani
دوشنبه 27 خرداد 1387, 08:55 صبح
<TextBox Background="{StaticResource TextBoxBack}" TextAlignment="Center" MinWidth="210" Foreground="{StaticResource TextBoxFore}" FontWeight="Bold" FontSize="16" Text="Simple Rotated TextBox">
<TextBox.LayoutTransform>
<RotateTransform Angle="30"/>
</TextBox.LayoutTransform>
</TextBox






http://i32.tinypic.com/288pq1s.png



پ و:
کد resource ها را اینجا نگذاشتم ( دو تا Brush از جنس linearGradient در Resource ها تعریف شده)

m-etemadi
دوشنبه 27 خرداد 1387, 09:21 صبح
سلام
این کد تو سی شارپ جواب میده ؟
کجا باید وارد کنم

ممنون

mrs Izadi
دوشنبه 27 خرداد 1387, 09:40 صبح
سلام
آقای کیانی ممکن در مورد قسمت آخر کدتان توضیحاتی بفرمایید. در C# این کد را چطوری باید نوشت.

gdevnb
دوشنبه 27 خرداد 1387, 09:50 صبح
این کد مربوط به تکنولوژی WPF هستش. اینجا رو ببین (http://barnamenevis.org/forum/showthread.php?t=102127)

برای چرخش کنترل تو #C
http://bytes.com/forum/thread256529.html

Mahdi.Kiani
دوشنبه 27 خرداد 1387, 10:17 صبح
سلام
آقای کیانی ممکن در مورد قسمت آخر کدتان توضیحاتی بفرمایید.

دقیقا در کدام قسمت مشکل دارید؟



در C# این کد را چطوری باید نوشت.



http://barnamenevis.org/forum/showthread.php?t=102127&page=4

m-etemadi
دوشنبه 27 خرداد 1387, 13:51 عصر
سلام
دوستان من منتظر جواب شما هستم لطفا راهنمایی کنید اگه می شه کدشو برام بفرستید

mrs Izadi
دوشنبه 27 خرداد 1387, 14:41 عصر
<TextBox.LayoutTransform>
<RotateTransform Angle="30"/>
</TextBox.LayoutTransform>
ممکنه بفرمایید این کد را در C# چگونه بنویسیم

Mahdi.Kiani
دوشنبه 27 خرداد 1387, 15:18 عصر
<TextBox.LayoutTransform>
<RotateTransform Angle="30"/>
</TextBox.LayoutTransform>


دوست عزیز
این کد هایی که مشاهده می کنید، دستورات زبان XAML می باشند که در تکنولوژی WPF از آن ها استفاده می شود. تکنولوژی WPF همراه با نسخه 3.0 دات نت فریم ورک آمد که نسخه 3.5 آن به همراه تکنولوژی های دیگر نظیر، WCF، WWF و ... در ویژوال استودیو 2008 موجود می باشد.
جهت یادگیری WPF به این تاپیک مراجعه نمایید. (http://barnamenevis.org/forum/showthread.php?t=102127)



ممکنه بفرمایید این کد را در C# چگونه بنویسیم



ویژوال استودیو 2008 را نصب کنید. از قسمت ایجاد پروژه جدید ( New Project ) گزینه WPFApplication را انتخاب نمایید.
موفق باشید

ASKaffash
دوشنبه 27 خرداد 1387, 17:16 عصر
سلام
با TextBox نمیشه ولی با Label میشه :


privatevoid label1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.Clear(this.BackColor);
e.Graphics.RotateTransform(30);
e.Graphics.DrawString(this.label1.Text, this.label1.Font, Brushes.Red, 10, 10);
}

openeyes
سه شنبه 28 خرداد 1387, 02:47 صبح
سلام
با TextBox نمیشه ولی با Label میشه :


privatevoid label1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.Clear(this.BackColor);
e.Graphics.RotateTransform(30);
e.Graphics.DrawString(this.label1.Text, this.label1.Font, Brushes.Red, 10, 10);
}


اگر اشتباه نکنم به وسیله این کد فقط یک رشته جدید با زاویه خاص نوشته میشه، و روی نوشته جدید قابلیت اجرای مثلا label1_Click را نداشته باشیم ...

m-etemadi
سه شنبه 28 خرداد 1387, 06:42 صبح
سلام
دوست من این کد رو باید تنو رویدار label1_click نوشت ؟ اگه آره که جواب نداده و اگر نه لطفاً بگید کجا باید نوشت

ممنون

sinpin
سه شنبه 28 خرداد 1387, 07:50 صبح
سلام
دوست من این کد رو باید تنو رویدار label1_click نوشت ؟ اگه آره که جواب نداده و اگر نه لطفاً بگید کجا باید نوشت
ممنون
ايشون كه مشخص كردند :

private void label1_Paint(object sender, PaintEventArgs e)

در زمان رخداد رويداد paint

m-etemadi
سه شنبه 28 خرداد 1387, 09:25 صبح
سلام
ممنون از راهنمایی دوستان

حالا اگه بخوام خودم زاویه چرخش رو دستی بهش بدم باید چه کدی و کجا بنویسم

ممنون

ASKaffash
سه شنبه 28 خرداد 1387, 13:54 عصر
سلام
این که خیلی آسان است یک متغیر روی سطح فرم بگیر یا اینکه از طریق یک TextBox زاویه را دریافت کن وبجای عدد 30 قرار بده.

m-etemadi
سه شنبه 28 خرداد 1387, 14:22 عصر
سلام
دوست عزیر چجوری؟ لطفا کدشو برام بزار.

ASKaffash
سه شنبه 28 خرداد 1387, 15:38 عصر
با سلام
اینجوری :


public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void label1_Paint(object sender, PaintEventArgs e)
{
this.Draw(e);
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
this.label1.Refresh();
}
private void Draw(PaintEventArgs e)
{
if (this.textBox1.Text.Trim() != "")
{
e.Graphics.Clear(this.BackColor);
e.Graphics.RotateTransform(float.Parse(this.textBo x1.Text));
e.Graphics.DrawString(this.label1.Text, this.label1.Font, Brushes.Red, 10, 10);
}
}
}

cmsdqq2
شنبه 01 آذر 1393, 20:22 عصر
سلام من ی لیبیل تاریخ و زمان دارم که به صورت افقیه ، یعنی تاریخ و زمانو به صورت افقی نشون میشه، چه کدی رو باید استفاده کنم تا عمودی نشون بده؟