| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- using System;
- using System.Drawing;
- using System.Drawing.Drawing2D;
- using System.Windows.Forms;
- namespace swf_texture {
- public partial class TextureForm: Form {
- TextureBrush tb;
- private string filename;
- public TextureForm (string[] args)
- {
- filename = args.Length > 0 ? args [1] : String.Empty;
- InitializeComponent ();
- tb = new TextureBrush (pictureBox1.Image);
- }
- private void textBox1_TextChanged (object sender, EventArgs e)
- {
- try {
- float f = Single.Parse (rotationTextBox.Text);
- tb.RotateTransform (f);
- rotationTextBox.BackColor = SystemColors.Window;
- }
- catch {
- rotationTextBox.BackColor = Color.Red;
- }
- finally {
- Invalidate ();
- Update ();
- }
- }
- private void TextureForm_Paint (object sender, PaintEventArgs e)
- {
- e.Graphics.FillRectangle (tb, e.Graphics.VisibleClipBounds);
- }
- private void resetButton_Click (object sender, EventArgs e)
- {
- tb.Transform = new Matrix ();
- Invalidate ();
- Update ();
- }
- /// <summary>
- /// Required designer variable.
- /// </summary>
- private System.ComponentModel.IContainer components = null;
- /// <summary>
- /// Clean up any resources being used.
- /// </summary>
- /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
- protected override void Dispose (bool disposing)
- {
- if (disposing && (components != null)) {
- components.Dispose ();
- }
- base.Dispose (disposing);
- }
- #region Windows Form Designer generated code
- /// <summary>
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- /// </summary>
- private void InitializeComponent ()
- {
- // System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager (typeof (TextureForm));
- this.pictureBox1 = new System.Windows.Forms.PictureBox ();
- this.rotationTextBox = new System.Windows.Forms.TextBox ();
- this.label1 = new System.Windows.Forms.Label ();
- this.resetButton = new System.Windows.Forms.Button ();
- ((System.ComponentModel.ISupportInitialize) (this.pictureBox1)).BeginInit ();
- this.SuspendLayout ();
- //
- // pictureBox1
- //
- // this.pictureBox1.Image = ((System.Drawing.Image) (resources.GetObject ("pictureBox1.Image")));
- if (filename.Length > 0) {
- this.pictureBox1.Image = Image.FromFile (filename);
- } else {
- Bitmap b = new Bitmap (32, 32);
- using (Graphics g = Graphics.FromImage (b)) {
- g.DrawLine (Pens.Red, 0, 0, 32, 32);
- }
- this.pictureBox1.Image = b;
- }
- this.pictureBox1.Location = new System.Drawing.Point (12, 217);
- this.pictureBox1.Name = "pictureBox1";
- this.pictureBox1.Size = new System.Drawing.Size (73, 80);
- this.pictureBox1.TabIndex = 0;
- this.pictureBox1.TabStop = false;
- //
- // rotationTextBox
- //
- this.rotationTextBox.Location = new System.Drawing.Point (94, 233);
- this.rotationTextBox.Name = "rotationTextBox";
- this.rotationTextBox.Size = new System.Drawing.Size (44, 20);
- this.rotationTextBox.TabIndex = 1;
- this.rotationTextBox.Text = "0";
- this.rotationTextBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
- this.rotationTextBox.TextChanged += new System.EventHandler (this.textBox1_TextChanged);
- //
- // label1
- //
- this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point (91, 217);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size (47, 13);
- this.label1.TabIndex = 2;
- this.label1.Text = "Rotation";
- //
- // resetButton
- //
- this.resetButton.Location = new System.Drawing.Point (94, 274);
- this.resetButton.Name = "resetButton";
- this.resetButton.Size = new System.Drawing.Size (75, 23);
- this.resetButton.TabIndex = 3;
- this.resetButton.Text = "Reset";
- this.resetButton.UseVisualStyleBackColor = true;
- this.resetButton.Click += new System.EventHandler (this.resetButton_Click);
- //
- // TextureForm
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF (6F, 13F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size (292, 309);
- this.Controls.Add (this.resetButton);
- this.Controls.Add (this.label1);
- this.Controls.Add (this.rotationTextBox);
- this.Controls.Add (this.pictureBox1);
- this.Name = "TextureForm";
- this.Text = "SWF Texture Demo";
- this.Paint += new System.Windows.Forms.PaintEventHandler (this.TextureForm_Paint);
- ((System.ComponentModel.ISupportInitialize) (this.pictureBox1)).EndInit ();
- this.ResumeLayout (false);
- this.PerformLayout ();
- }
- #endregion
- private System.Windows.Forms.PictureBox pictureBox1;
- private System.Windows.Forms.TextBox rotationTextBox;
- private System.Windows.Forms.Label label1;
- private System.Windows.Forms.Button resetButton;
- static void Main (string[] args)
- {
- Application.EnableVisualStyles ();
- Application.SetCompatibleTextRenderingDefault (false);
- Application.Run (new TextureForm (args));
- }
- }
- }
|