WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/12/27(日) 10:58:30て語るスレ。.NET3.5 SP1 もリリースされて盛り上がってまいりますた。
Visual Studio 2008
ttp://www.microsoft.com/japan/msdn/vstudio/
Microsoft .NET Framework 3.5 Service Pack 1
ttp://www.microsoft.com/downloads/details.aspx?FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=ja
WPF Toolkit - June 2009 Release
ttp://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29117
Visual Studio 2010
ttp://www.microsoft.com/japan/msdn/vstudio/2010/overview/
関連スレ
Microsoft Silverlight その4
ttp://pc12.2ch.net/test/read.cgi/tech/1244812356/
過去スレ
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
ttp://pc12.2ch.net/test/read.cgi/tech/1245384489/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
ttp://pc12.2ch.net/test/read.cgi/tech/1231506876/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング
ttp://pc11.2ch.net/test/read.cgi/tech/1211453941/
【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】
ttp://pc11.2ch.net/test/read.cgi/tech/1162950198/
0353デフォルトの名無しさん
2010/03/07(日) 18:52:270354デフォルトの名無しさん
2010/03/07(日) 19:29:00他のところはだいたいそのまま.NETのコードを拝借しただけなんだけど
0355デフォルトの名無しさん
2010/03/08(月) 22:09:33ユトリは大人しくオナニーでもしてろ
0356デフォルトの名無しさん
2010/03/09(火) 11:32:09結局は面倒くさいからな
マイクロソフトのこの手の製品の癖として、何でも出来るようにさせるがために、全体の簡便さや明快さを犠牲にする。
作るソフトの特殊度・高機能度 低 中 高
要する労力 30 50 70
これを、 15 30 100
くらいの設計思想にしたっていいように思うがそうはしない。
ソフト制作の環境が昔と様々に違っている上、「また数年も経てば新プログラミング製品を出すんだろ?だとしたら過渡期のものをいちいち細かく研究してられるか。」感も強く、流行らないのも仕方ない。
0357デフォルトの名無しさん
2010/03/09(火) 11:48:54http://www.dotup.org/uploda/www.dotup.org711436.png
0358デフォルトの名無しさん
2010/03/09(火) 12:00:40WPF と全然関係なくね?
0359デフォルトの名無しさん
2010/03/09(火) 12:10:240360デフォルトの名無しさん
2010/03/09(火) 13:29:06Javaみたい
0361デフォルトの名無しさん
2010/03/09(火) 15:51:450362デフォルトの名無しさん
2010/03/09(火) 16:01:490363デフォルトの名無しさん
2010/03/09(火) 16:37:36あんまり簡単すぎるとうちらの仕事もなくなっちゃうよorz
0364デフォルトの名無しさん
2010/03/09(火) 16:42:220365デフォルトの名無しさん
2010/03/09(火) 17:01:040366デフォルトの名無しさん
2010/03/09(火) 17:12:590367デフォルトの名無しさん
2010/03/09(火) 17:21:53自動実装のプロパティと比べて2つも増えているのが面倒とか?
0368デフォルトの名無しさん
2010/03/09(火) 17:24:330369デフォルトの名無しさん
2010/03/09(火) 17:57:11正直くどい。
0370デフォルトの名無しさん
2010/03/09(火) 18:42:37Visual Studio使っていれば、propdp[Tab][Tab]と叩くいて雛形を埋めるだけで出来上がるし。
0371デフォルトの名無しさん
2010/03/09(火) 18:47:50不毛すぎる。
0372デフォルトの名無しさん
2010/03/09(火) 20:17:360373デフォルトの名無しさん
2010/03/10(水) 13:13:42答えはもちろんNO!
0374デフォルトの名無しさん
2010/03/10(水) 15:24:480375デフォルトの名無しさん
2010/03/10(水) 15:30:320376デフォルトの名無しさん
2010/03/10(水) 17:37:340377デフォルトの名無しさん
2010/03/10(水) 17:55:12バッドノウハウをお客さんのかわりに網羅する仕事だもんな。
Oracle のあるバージョン特有のチューニング方法とかどう考えても10年後20年後に役立つ知識じゃない。
0378デフォルトの名無しさん
2010/03/11(木) 00:30:280379デフォルトの名無しさん
2010/03/11(木) 01:17:27DataGrid で行の確定ごとにサーバーに問い合わせて、エラーを表示したいんだけど良い方法が分からない。
0380379
2010/03/11(木) 22:13:56IDataErrorInfo と INotifyPropertyChanged を実装してエラー更新後に PropertyChanged 呼んでやれば良いだけだった。
PropertyChanged でエラー情報も拾ってくれるんだね。
0381デフォルトの名無しさん
2010/03/12(金) 20:55:17WPF3.5 で開発しています。
[DllImport("user32.dll")]
public static extern bool SetProp(IntPtr hWnd, string lpString, IntPtr hData);
this.Loaded += new RoutedEventHandler(
delegate(object sender, RoutedEventArgs arg) {
var source = new WindowInteropHelper(this);
SetProp(source.Handle,
"MicrosoftTabletPenServiceProperty", new IntPtr(0x01000000));
}
);
によってマルチタッチを有効にし(これはMSDNのサンプルからも得られる知識です)、
Stylusイベントによってマルチタッチアプリを開発しています。
参考になるサイトは以下です。
ttp://blog.andreweichacker.com/2009/02/windows-7-multi-touch-using-wpf/
MSDNのサンプル、↑のブログ、その他海外のサイト、どこを見ても
StylusDown, Up によってタッチの有無を判定していますが、
StylusEnter, Leave を用いたものを見たことがありません。
試しに Enter, Leave のイベントを記述し、対応する関数内で
(たとえば)listBox1.Items.Insert(0, "Stylus Enter" + e.StylusDevice.ID);
などと記述すると、Enter, Leave は問題なく取得できています。
が、1本目の指で StylusEnter し、2本目の指をウィンドウ内にタッチすると
Enter, Leave が暴走します。
(※すみません、次のレスに続きます)
0382381
2010/03/12(金) 21:09:20window1 内に、Rectangle1, Rectangle2 を配置し、
線を太くし、それぞれに StylusDown, Up, Enter, Leave の関数を記述します。
各関数では、↑に貼ったURLのように StylusのIDで条件分岐し、
Rect1/2 どちらのイベントか、Down/Up/Enter/Leaveどのイベントか
が分かるように、文字列として出力するとします。
■試行1(Enter, Leaveのイベントを取らない場合)
・Rect1をタッチすると、"Rect1 Down 16" みたいに表示されます。
16はStylusDevice.IDの例です。
・Rect1上から指を離すと、"Rect1 Up 16" みたいに表示されます。
・Enter, Leave, Rect2の場合も同じです。
・Rect1をタッチしながらRect2をタッチすると、"Rect1 Down 16" に続いて
"Rect2 Down 17" みたいに表示されます。
続いて指を離すと、指に応じたIDが "Up" された表示が出ます。
■試行2(Enter, Leaveのイベントを取る場合)
・Rect1の外をタッチして、Rect1の中にスライドさせると、"Rect1 Enter 16"みたいに表示。
・そのままLeaveすると、"Rect1 Leave 16"みたいに表示。
・Rect1に Enter した状態で、Rect1, Rect2 の外をタッチすると、
"Rect1 Leave 16", "Rect1 Enter 16" "Rect1 Leave 16" "Rect1 Enter 16" ...
と、次々と表示されます。
・Rect1に Enter した状態で、Rect2をタッチすると、
"R1 Leave 16" "R1 Enter 16" "R2 Leave 17" "R2 Enter 17" "R1 Enter 16" "R1 Leave 16" "R2 Enter 17"...
と、次々と表示されます。
これが何故か分かる方、
また、この対処方法が分かる方はおりますでしょうか?
長文、申し訳ありませんがよろしくお願いします。
0383デフォルトの名無しさん
2010/03/12(金) 21:18:58間違っても「どうすればいいか」とかは聞かないでくれよ。
0384381
2010/03/12(金) 21:33:23早速のレスありがとうございます。
Down, Up は同一のポイントとして計算はされず
Enter, Leaveは同一として計算される
ことが分かる情報があるということでしょうか。
Down, Up と Enter, Leave に大きな違いがある
という情報にあたった経験がありません・・・。
よろしくお願いします。
0385デフォルトの名無しさん
2010/03/12(金) 21:43:57いいたいことがあるなら上司かMSにでも言え。俺に言うな。
0387デフォルトの名無しさん
2010/03/15(月) 15:26:35treeview.SelectedItem = item;
のように指定できません。
例えばディレクトリ構成をツリー表示している場合、初期ディレクトリを開いて
選択状態にしたい時はどのようにしたらいいでしょうか?
0388デフォルトの名無しさん
2010/03/15(月) 17:18:43つEnsureVisible()
0389デフォルトの名無しさん
2010/03/15(月) 17:33:120390デフォルトの名無しさん
2010/03/19(金) 01:16:40Model-View WPF Applications--Part 2, Walkthroughにおいて
コマンド呼び出しにわざわざCommandReferenceを間にかませているのだけど
これは何の意味があるのでしょうか?
ViewModelのプロパティ名を記述する部分を一箇所にまとめるという意味はあると思いますが。。。
そもそもCommandReference自体が何をするためのもの?
0391390
2010/03/20(土) 01:06:56となってるところを
<KeyBinding Key="X" Modifiers="Control" Command="{Binding ExitCommand}" />
こうしちゃえばいいじゃんと思ったら依存関係プロパティじゃないからバインドできないということなのね〜
StaticResourceでワンクッション置けばできる仕組みはなんとなくしか理解してないが
バインドできない(Dependencyでない)プロパティ用の中継オブジェクトという認識で理解。
0392デフォルトの名無しさん
2010/03/20(土) 20:34:28http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=52A193D1-D14F-4335-AA86-C53193E1885D
読んでないけど、なんか来てた。
0393デフォルトの名無しさん
2010/03/20(土) 20:49:32どうしたらいいでしょうか?
0394デフォルトの名無しさん
2010/03/20(土) 20:53:250395デフォルトの名無しさん
2010/03/20(土) 21:03:10[STAThread]
static void Main(string[] args) {
Application application = new Application();
application.StartupUri = new Uri(new FileInfo(args[0]).FullName);
application.Run();
}
0396デフォルトの名無しさん
2010/03/21(日) 15:27:44Fonts.SystemFontFamilies で列挙できる FontFamily で等幅かプロポーショナルか
判断する方法ありますか?
0397デフォルトの名無しさん
2010/03/22(月) 00:41:43OnClosingとかOnLoadイベントにICommandをバインド?したいのですが
どう書けばいいのですか?
xamlに直接書けないのかな?
イベントハンドラ作ってxaml.csにコードで書くのかな?
できないことはないと思いますがぐぐっても情報が見つけられないです
0398397
2010/03/22(月) 23:32:43MVVMでのイベント処理は結構悩みどころなんですね。
添付プロパティをくっつけてイベントキックさせるというメンドクサイやりかたが見つかりました。
↓
ttp://blogs.wankuma.com/kazuki/archive/2009/05/05/172467.aspx
xaml的には美しいですけどね・・・
このままではあまりに使い勝手が悪いので汎用的になるように改造してみます。
てか絶対誰か既に作ってるだろ。。。趣味だからいいんだけれどね・・・
0399デフォルトの名無しさん
2010/03/23(火) 10:59:35個人的には落ちない部分は大人しくコードビハインド書いたらいいのにとは思うけど。
0400デフォルトの名無しさん
2010/03/23(火) 13:36:30var service = (IWorkspaceService)this.Services.GetService(typeof(IWorkspaceService));
service.OpenWorkspace(HogeWorkspaceViewModel);
みたいにしたらだいたいなんとかなるとおもう
0401デフォルトの名無しさん
2010/03/23(火) 14:42:36AttachedCommandBehaviorが使えるよ。
http://marlongrech.wordpress.com/2008/12/13/attachedcommandbehavior-v2-aka-acb/
0402デフォルトの名無しさん
2010/03/23(火) 16:22:41私なりに調べた結果、WPFの描画の際に論理座標で色を配置する仕様が原因であること、図形と画像については
RenderOptionsのパラメータで解決させることができる。
ですがテキストに関しては解決させる方法が見つからないでいます。
WPF4.0から対応するといった内容のページも見つけましたが、なんとか解決させたいと思っています。
どなたか解決方法を教授願えませんでしょうか。
0403397
2010/03/23(火) 17:04:58まぁ >>122 ということなのです。
WPF触りたてなのでまだまだMVVMの華麗なる疎結合に夢と希望をもっていますのでw
>>400
IWorkspaceService ってインターフェースはMSDNもグーグルさんも知らないとおっしゃってるのですが・・・
>>401
おお!すばらしいです。
ぱっとみ問題ありそうなのはEventArgsが利用できなさそうなくらいですかな。
大変参考になります。
こんな↓ページを見つけまして
ttp://blogs.microsoft.co.il/blogs/tomershamam/archive/2009/04/14/wpf-commands-everywhere.aspx
でも上のはRoutedEventにしか対応してないから普通のEventHandler対応版を追加するのに
リフレクション使ってイベント名からイベント追加してというコードを作ったのですが
同じコードがあるじゃないか・・・orz
0404デフォルトの名無しさん
2010/03/23(火) 17:29:16WinFormsHost
敗北宣言に等しいけど
0405デフォルトの名無しさん
2010/03/23(火) 17:38:100406デフォルトの名無しさん
2010/03/23(火) 17:48:50XAMLくらい出せるだろ
0407デフォルトの名無しさん
2010/03/23(火) 22:35:36だからどうしたらいいと言えるわけではないけれど。
0408デフォルトの名無しさん
2010/03/23(火) 22:51:45を使っているのだが、
Win32におけるWM_GESTUREみたいなもので
Gestureイベントってあるのかな?
zoomとかrotateとか簡単に取得できると
良いのだが。
0409デフォルトの名無しさん
2010/03/23(火) 22:59:34でググる
0410デフォルトの名無しさん
2010/03/23(火) 23:34:37それで解答が得られたのであれば
本気で教えて欲しい。
どうせ「WPF マルチタッチ」でググったことないんだろ?
0411410
2010/03/23(火) 23:38:39正直スマンかった。
最近、海外のサイトばかり回っていたのだが
日本のサイトでもWPF4.0について書かれているサイトが
少しずつ増えているんだな。
0412デフォルトの名無しさん
2010/03/24(水) 21:26:14XP用に開発するのは無謀?
0413デフォルトの名無しさん
2010/03/24(水) 22:33:26俺はもうXPはサポート外でやろうと思ってるくらいだ。
0414デフォルトの名無しさん
2010/03/24(水) 23:08:34XPだと表示が微妙なんでしょうか?
0415デフォルトの名無しさん
2010/03/24(水) 23:09:18Silverlight4ならブラウザ外実行の普通のデスクトップアプリケーションとして
CDなどで直接配布できるよ
0416デフォルトの名無しさん
2010/03/24(水) 23:17:52微妙っていうか重いってのが一番のネックかと。
今のところ、WPF でやってみました!!なんてのが売りになるぐらい流行ってないと思う。
少なくとも国内では。
0417デフォルトの名無しさん
2010/03/24(水) 23:28:38簡単にWPFのGUIに移行できる?
簡単に言うとform1だけwindows1にするだけで
作り変えられるのか?ってとこが疑問なんだけど
このGUIで非同期とか実現できるのかなー
0418デフォルトの名無しさん
2010/03/24(水) 23:31:12昔の素朴なイベントキューアーキテクチャって一目で理解できたもんな
それってある意味ではすごい
0419デフォルトの名無しさん
2010/03/24(水) 23:32:32ならない
細かいところで変わってるから
0420デフォルトの名無しさん
2010/03/24(水) 23:33:31> form1だけwindows1にするだけで作り変えられるのか?
一応WinFormとの相互運用性は確保されてるが、
Windowに直接System.Windows.Forms.Controlは乗せられないから多少手間が必要
しかしそれ以前にそもそもWPF使う意味皆無だろそんなもん
> このGUIで非同期とか実現できるのかなー
意味分からん
0421デフォルトの名無しさん
2010/03/24(水) 23:38:29重いんですか、残念
こういうの待ってたんだけどなぁ
Silverlightってwikipedia見る限りWPFと同じなのかな??は調べてやってみまする
0422デフォルトの名無しさん
2010/03/24(水) 23:39:54プラットフォームに依存しないんじゃないの?
0423デフォルトの名無しさん
2010/03/24(水) 23:40:550424デフォルトの名無しさん
2010/03/24(水) 23:41:04GUI周りの構造の問題じゃないの?
試してないけどもしかするとvistaのAero切ったらだめってのと同じかもね
0425デフォルトの名無しさん
2010/03/24(水) 23:42:410426デフォルトの名無しさん
2010/03/24(水) 23:43:42GPUと融合果たしてるけど、xpまでは2Dが基本なのでWPFだといろいろ
無駄がありそうってイメージ
0427デフォルトの名無しさん
2010/03/24(水) 23:59:150428デフォルトの名無しさん
2010/03/25(木) 04:20:54UIがめっちゃオサレですね
でも使い方が全然わからん
ほんとにデザイナさんこんなの使えるの???
0429デフォルトの名無しさん
2010/03/25(木) 06:40:200430デフォルトの名無しさん
2010/03/25(木) 10:53:570431デフォルトの名無しさん
2010/03/25(木) 13:04:21OSはあんまり関係ないよ
WPFは基本的にウィンドウ内で完結してるのでほんとにゲームと全く変わらない
0432デフォルトの名無しさん
2010/03/25(木) 17:46:110433デフォルトの名無しさん
2010/03/25(木) 17:59:00ウインドウの中身をdirectxで書いてるという点では関係ない
0434デフォルトの名無しさん
2010/03/25(木) 22:30:39なのでOSは思いっきり関係ある。
0435デフォルトの名無しさん
2010/03/25(木) 22:33:57単なるゲームだと何度言ったら
0436デフォルトの名無しさん
2010/03/25(木) 22:42:50XPでは透明ウィンドウがソフトウェア処理されていたこと
.NET3.5ではXPでも透明ウィンドウにGPUが効くようになった
0437デフォルトの名無しさん
2010/03/25(木) 22:49:273.5以降ターゲットで作ればVista以降と比べて遅いってことはなくなるのか。
0438デフォルトの名無しさん
2010/03/26(金) 00:13:160439デフォルトの名無しさん
2010/03/27(土) 01:22:15イラレで描いた絵をXAML形式で吐いて
WPFに配置することはできますが、
以下のことは可能でしょうか?
・座標 (a, b) を設定する
・ボタンを押す
・指定した座標に、イラレで描いた絵を配置する
たとえば、ある canvas に対する相対位置 (a, b) に
XAML形式のものを配置するということを、C#のコードで
実現することは出来るのでしょうか?
0440デフォルトの名無しさん
2010/03/27(土) 08:06:130441デフォルトの名無しさん
2010/03/27(土) 08:23:34*.cs からイラレxamlって生成できるの?
どうやんの?
0442デフォルトの名無しさん
2010/03/27(土) 08:27:29労力を無視すれば
どんなことであれ不可能ではないだろう
0443デフォルトの名無しさん
2010/03/27(土) 09:08:38http://www.mikeswanson.com/xamlexport/
0444デフォルトの名無しさん
2010/03/27(土) 09:24:27XamlReaderでXAMLを読み込んでXAMLのルート要素の型(IllustratorならたぶんCanvas)にキャスト
Canvas.SetLeftとCanvas.SetTopで位置を設定
配置されてるCanvasのChildrenに追加
0445デフォルトの名無しさん
2010/03/27(土) 15:17:300446デフォルトの名無しさん
2010/03/27(土) 19:26:24〜でできますかという言い方をすれば俺ならこうやってできるぜ
という人が必ず現れるので労力は無視できる。
0447デフォルトの名無しさん
2010/03/27(土) 19:37:45それが2ちゃんの正しい使い方
0448デフォルトの名無しさん
2010/03/27(土) 19:39:35「◯◯ってどうやるんでしょう?→△△で出来ますよ(嘘自演)→アホ、□□だ情弱」メソッドもあるでよ。
0449デフォルトの名無しさん
2010/03/27(土) 19:44:390450439
2010/03/27(土) 22:09:58ありがとうございます。
そのプラグインで生成したxamlを *.cs.xaml に記述するのではなく
*.cs の中から生成したいのです。
>>444
ありがとうございます。
今、外出中なので帰宅したらやってみます。
また、いただいた情報から更に調べてみます。
>>445
ありがとうございます。
検索の手がかりになるキーワードだけでも
教えていただけないでしょうか。
0451デフォルトの名無しさん
2010/03/28(日) 02:42:38検索キーワード聞かなきゃ検索できないとか冗談にもならないレベルだよ
0452デフォルトの名無しさん
2010/03/28(日) 09:35:00■ このスレッドは過去ログ倉庫に格納されています