Thumbコントロールでドラッグ http://www.moonmile.net/blog/archives/698 で、スクロールバーで使われる Thumb コントロールを使ってドラッグを試してみましたが、このままでは単純な四角(決められたスタイル)しかドラッグできません。 Thum コントロールを少し工夫して、色々な形のコントロールも移動ができるようにする、ことは可能だとは思うのですが、いささか面倒です。つーか、もともとやりたいことは、普通のコントロールのドラッグ、あとはコントロールを配置してマウスで移動、なんてのを想定しているので、Thumb コントロールでは都合が悪いのです。コードの見通は悪くないんだけどね、XAMLが奇妙な感じになりそう。 そんな訳で、普通のコントロール(Ellipseコントロール)を移動させてみます。 ■Window1.xaml <Window x:Class="SampleDrag.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="400"> <Canvas Name="board"> <TextBlock Canvas.Left="0" Canvas.Top="0" Height="21" Name="textPos" Width="119" Text="x:0 y:0" /> <Ellipse Name="mark0" Canvas.Left="28" Canvas.Top="43" Height="30" Stroke="Black" Width="30" Fill="Pink" MouseLeftButtonDown="mark0_MouseLeftButtonDown" MouseLeftButtonUp="mark0_MouseLeftButtonUp" MouseMove="mark0_MouseMove" /> </Canvas> </Window> ■Windows1.xaml.cs [...]
補講の7回目(最終回)です。 今回は、ちょっと…いえ、かなり便利な URL書き換え(url rewrite)の機能です。 URL書き換えというのは、CGIでよくある。 http://localhost/sample/page.aspx?year=2010&month=03&day=04 みたいな URL を http://localhost/sample/2010/03/04 のようなアドレスでもアクセスできるようにするモジュールです。 # 実は、新しい ASP.NET ではこの機能も含まれているのですが、SE としては # IIS で対応したほうがいいのかな、と。 Microsoft URL Rewrite Module 1.1 for IIS 7 (x86) http://www.microsoft.com/downloads/details.aspx?familyid=DBA94A96-E513-4F87-9082-8CB04B743793&displaylang=ja Microsoft URL Rewrite Module 1.1 for IIS 7 (x64) http://www.microsoft.com/downloads/details.aspx?familyid=D05111C1-B4F7-45F3-8F60-A8F2B9D49ED1&displaylang=ja これをインストールすると、IISマネージャにアイコンが現れます。 <019> アイコンをクリックすると設定されたルールが出ます。 <020> ここでは何も設定していないので、何もありません。 さて、ここでIIS独自のルールを設定する訳ですが、便利な機能があります。 apache の mod_rewrite と互換を持たせるために、.htaccess ファイルをインポートできます。 このため、既存の PHP の OSS の設定がそのまま使えます。便利ですねぇ。 [...]
WPFやSilverlightの表示は、XAMLで作成されているので、うまくやれば Windows アプリケーションの図形移動よりも楽に移動ができる…ハズです。 Windows コントロールの場合は、ボタンなどのような標準コントロールの場合はドラッグ&ドロップのイベントが用意されているのですが、四角や文字などを移動しようと思うと途端に難しくなります。 # マウスイベントを拾って移動すればいいだけなのですが、まあ、 # 面倒と言えば面倒。図形のサイズを変えようとすると、ひと苦労だし。 WPFやSilverlightのビューは、XAMLで書かれているので、ここの値を直接書き変えてやれば、移動や回転などができます。ボタン以外も、矩形や円なども同様に移動などができるわけです。 で、実際にやってみたのですが、結果を言えば、やっぱり「ひと苦労」ですね。 矩形のハンドル(四隅にある四角)を使って大きさなどを変えようと思うと、ハンドル自身のマウスダウンイベントや、移動のイベントなどを拾う必要があります。 さて、具体的な例は、もう少しソースを整理してから紹介することにして。 実は WPF と Silverlight には、あらかじめドラッグできるコントロールが用意されています。これが、「Thumbコントロール」なのです。リストボックスなどのスクロールバーに使われています。 Thumb クラス http://msdn.microsoft.com/ja-jp/library/system.windows.controls.primitives.thumb.aspx で、結論を先に言うと、これを使って汎用的なドラッグできるコントロールができるかというと、「できません!」。あくまで、スクロールバーなどに使うコントロールで、一般的な形になっていません。なので、色やら枠線やらが固定になっています。 ま、ひとつ、参考までにソースを晒しておきます。 ■WPFの場合 <001> <Window x:Class="SampleThumb.Window1" xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml Title="Window1" Height="300" Width="400"> <Canvas> <TextBlock Canvas.Left="0" Canvas.Top="0" Height="22" Name="textPos" Width="75" Text="x:0 y:0" /> <Rectangle Canvas.Left="46" Canvas.Top="48" Height="70" Name="rectangle1" Stroke="Black" Width="109" [...]
補講の6回目です。 2年程前から、PHP on IIS というプロジェクトが走っています。 IIS上(Windows上)で、PHPを動かす、かつ、他の PHP アプリをインストールして動かす、というプロジェクトです。 いわゆる、LAMP環境(linux, apache, mysql, php)を、 windows + iis + mysql + php で動かそうという試みです。試みとはいえ、結構実用段階で、mysql と php が同時に入ってくれるのが便利なところです。 # php + sql server という組み合わせでもありなのですが、PHP で作成された OSS の # ほとんどが、mysql を使うので、mysql + php が主な組みわせになります。 さて、Windows ではあっても、PHP + MySQL を入れようとすると、結構手間がかかります。さらに、OSS を入れようとすると、かなり手間がかかります。 そこを自動で行ってしまうのが、Web Platform Installer というものです。 例えば、WordPress というブログをデータベース作成まで含めて、自動で行います。 <017> http://www.microsoft.com/web/downloads/platform.aspx 一度インストールすると、IISマネージャにアイコンが表れます。 <016> 起動すると、こんな風に様々なOSSがインストールできます。 [...]
補講の5回目です。 さて、今回は Appcmd.exe というツールの話をしましょう。 実は、Windows Server 2008 R2 から PowerShell を使うように推奨されているのですが、コマンドラインで IIS を制御するには、appcmd.exe のほうが楽だったりします。 <015> 通常のコマンドプロンプトではパスが通っていないので、 c:\windows\system32\inetsrv に移動してから使ってください。 ヘルプを見ると、以下のものが使えます。 サポートされているオブジェクトの種類: SITE 仮想サイトの管理 APP アプリケーションの管理 VDIR 仮想ディレクトリの管理 APPPOOL アプリケーション プールの管理 CONFIG 全般構成セクションの管理 WP ワーカー プロセスの管理 REQUEST HTTP 要求の管理 MODULE サーバー モジュールの管理 BACKUP サーバー構成バックアップの管理 TRACE 失敗した要求トレース ログの処理 [...]