10/08/22 21:11:53
一向に普及しないユーザーインターフェースシステム
Windows Presentation Frameworkについて語るスレ。
パワフルで柔軟すぎるのが敗因か? 正直ついていけないよね…。
Visual Studio 2010
URLリンク(www.microsoft.com)
Microsoft .NET Framework 4 (Web インストーラー)
URLリンク(www.microsoft.com)
Microsoft .NET Framework 4 (スタンドアロンインストーラー)
URLリンク(www.microsoft.com)
関連スレ
Microsoft Silverlight その6
スレリンク(tech板)
過去スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part6
スレリンク(tech板)
WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5
スレリンク(tech板)
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
スレリンク(tech板)
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
スレリンク(tech板)
WPF(XAML,XBAP,.NET3.5)GUIプログラミング
スレリンク(tech板)
【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】
スレリンク(tech板)
コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
URLリンク(ideone.com)
2:デフォルトの名無しさん
10/08/22 22:08:37
に
3:デフォルトの名無しさん
10/08/24 01:40:56
>>1
乙
4:デフォルトの名無しさん
10/08/27 21:46:28
チェックボックスとボタンがあって、チェックボックスの値(true false)によって
ボタンのコマンドを変えたい場合、ボタンのコマンドをチェックボックスの値にバインドして
booleanからICommandへのConverterを書くしか方法はないでしょうか?
Styleのtriggerのpropertyはターゲット自身のプロパティしか参照できないですよね??
5:デフォルトの名無しさん
10/08/28 01:17:36
>>4
TriggerはTargetName=チェックボックスのName、Property=IsChecked、Value=Falseを指定する。
SetterのTargetName=ボタンのName、Property=IsEnabled、Value=Falseを指定する。
6:デフォルトの名無しさん
10/08/28 14:14:23
無理やり埋めるのは美しくない
7:デフォルトの名無しさん
10/08/28 17:51:30
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究
8:デフォルトの名無しさん
10/08/31 22:50:42
WPFToolkitの.NET4版はいつリリースされるのかと。
9:デフォルトの名無しさん
10/08/31 22:55:16
忘れた頃にだろうな
忘れてたけど
10:デフォルトの名無しさん
10/09/01 22:15:42
Expressionスレがないから聞くが
Expression3→4へ無償UPGキャンペーンってまだやってんの?
11:デフォルトの名無しさん
10/09/01 22:41:57
Expression3インスコPCにⅣ体験版入れれば製品版になるから
実質永久にキャンペーン中
12:デフォルトの名無しさん
10/09/01 22:49:20
終了したとは聞いてないからやってるんじゃね
13:デフォルトの名無しさん
10/09/01 23:07:49
>>11 >>12 ありがとね
14:デフォルトの名無しさん
10/09/03 15:06:37
>>11
キャンペーンのこと知らなくて、体験版入れたら何時まで経っても使用期限が来ないもんで
登録情報見たら登録済みになっててびっくらこいたよ。
もしかして落とせるようになってたの体験版じゃなくて正規版??とか一瞬ドキドキしたw
Expressionの3とは別にインストールされるみたいだけど、3はアンインスコしちゃって
いいのかねえ???
15:デフォルトの名無しさん
10/09/03 16:11:21
どうなんだろうね
入れっぱなしだけど…
16:デフォルトの名無しさん
10/09/05 19:22:49
ListBoxItem を RenderTransform.RotateTransform で回転させても
ListBox の外枠でクリッピングされてしまいますが、これをはみ出させる方法はありますでしょうか?
とりあえず、ListBox と ListBoxItem の ClipToBounds = false にしてみましたが、
これではだめなようです。
17:デフォルトの名無しさん
10/09/05 20:32:31
ListBoxItemでは多分無理
スクロールバー表示のため制御されてる
18:16
10/09/07 09:15:51
レスありがとうございました。
難しそうなんであきらめることにします。
19:デフォルトの名無しさん
10/09/07 21:50:55
UserControl を作ってその中に ScrollViewer を入れました。
で、UserControl で、
<UserControl.InputBindings>
<KeyBinding Key="Left" Command="HogeHoge" />
</UserControl.InputBindings>
としたんですが、ScrollViewer にキー入力をとられてしまい、
HogeHoge が発生しません。
UserControl で先にイベントを取得する方法はないでしょうか?
(PreviewKeyDown イベントを使う方法だと、KeyBinding が使えなくなって
しまうので、それ以外の方法でお願いします。)
20:デフォルトの名無しさん
10/09/10 04:05:20
VS2010のプロパティで、"共通"のカテゴリに表示させる方法がわからねえ。
[Category("共通")] 以外あったら教えてくれ。
21:デフォルトの名無しさん
10/09/10 11:37:14
[Category("Common")]
22:デフォルトの名無しさん
10/09/11 20:01:19
Windowを常に最背面に表示する方法はありますか?
今はURLリンク(gurizuri0505.halfmoon.jp)の方法を試してみたのですが、
最背面どころか画面が消えて見えなくなってしまいます。
23:デフォルトの名無しさん
10/09/12 09:34:54
<TreeView x:Name="treeView">
<TreeViewItem Header="aa">
<TreeViewItem Header="bb">
<TreeViewItem Header="cc" />
</TreeViewItem>
</TreeViewItem>
<TreeView.Resources>
<Style TargetType="TreeViewItem">
<EventSetter Event="MouseDoubleClick" Handler="ItemClick" />
</Style>
</TreeView.Resources>
</TreeView>
これだとダブルクリックイベントが複数回発生するんだけどどうすればいいの?
24:デフォルトの名無しさん
10/09/12 10:09:45
>>22
ActivatedイベントでWin32APIのSetWindowPos関数使ってHWND_BOTTOMにセットするとか
一瞬アクティブになったりもするけど
>>23
e.Sourceで判断する
25:デフォルトの名無しさん
10/09/12 10:13:53
>MouseDoubleClick イベント ハンドラーで Handled プロパティを true に設定すると
>ルート上のその後の MouseDoubleClick イベントは、Handled が false に設定された状態で発生します。
>コントロール作成者がマウスのダブルクリックを処理する場合は、
>ClickCount が 2 に等しいMouseLeftButtonDown イベントを使用する必要があります。
>これにより、要素ツリー内の別の要素がそのイベントを処理する場合に、Handled の状態が適切に伝播されます。
うわ面倒くさ
26:23
10/09/12 10:32:23
>>24
もうすこしくやしくお願いします
27:デフォルトの名無しさん
10/09/12 10:36:42
複数回イベントが起こるのはしょうがないから
senderで判別しろってことだろ
下位の層でイベントを拾ったら上の層を無視するようにする
28:23
10/09/12 10:43:42
出来ました
ありがとうございました
29:デフォルトの名無しさん
10/09/12 11:25:18
>>24
自分のやりたい事は壁紙を変更する事だと気づき、最背面はあまり関係ありませんでした。
でも、壁紙変更もWin32APIで出来る事がわかりました。
あまりWPF関係ないですね。ありがとうございました。
30:デフォルトの名無しさん
10/09/13 02:25:12
iPhoneのようなササッと横に流れてUIが切り替わるようなカッチョいいアプリを作りたいんだけど、
ウィンドウ内で画面遷移させるのってWPFだとどうやるの?
UIをそれぞれリソースにしてContent = FindResource("...")とやれば一応動作はするんだけど、
これだとそれぞれのUIにコードビハインド付けられないし使いにくい。
PageはWeb用みたいなかんじだし、UserControlでまとめるのもなんか違う気がする。
31:デフォルトの名無しさん
10/09/13 04:25:18
カッチョいいwwwwwwww
32:30
10/09/13 10:50:35
どうやらResourceDictionaryにコードビハインド付けられるみたいね。
それぞれのUIはこれで作ってMainWindowに統合する形でやってみます。ども
33:デフォルトの名無しさん
10/09/13 13:22:27
LabelってIsMouseOverみたいなプロパティないの?
34:デフォルトの名無しさん
10/09/13 13:36:04
普通にあるがな
URLリンク(msdn.microsoft.com)
35:デフォルトの名無しさん
10/09/13 21:16:35
>>32
普通にUserControlだろ
リソースディクショナリにコードビハインドとかどう考えてもおかしい
36:デフォルトの名無しさん
10/09/14 00:11:17
Grid の中に TextBlock をいれると、Grid の幅いっぱいに広がります。
テキストを表示するのに必要な幅を知りたいので、
これをよこいっぱいに広がらず WinForms の AutoSize = true の
ような状態にしたいのですが、そのような設定ができるプロパティ
とかありますか?
現在は、StackPanerl(Orientation = Horizontal)の中にいれて
横幅いっぱいまでひろがらないようにしていますが、
そのためだけに StackPanerl を使うのは無駄なような気がして、
なにか方法あるんじゃないかと思ってるんですが。
37:デフォルトの名無しさん
10/09/14 00:16:54
>>35
たしかにデザイナも使えないしやめたほうがいいかも
それでやってみます
38:デフォルトの名無しさん
10/09/14 00:20:05
>>36
HorizontalAlignment/VerticalAlignment?
39:36
10/09/14 00:52:41
できました。
HorizontalAlignment プロパティは知ってましたが、WinForms と同じで
TextBlock 内で Text をどこに表示するかという意味だとばかり思ってました。
HorizontalAlignent でコントロール自体の大きさが変わるとは・・・。
勉強になりました。ありがとうございました。
40:デフォルトの名無しさん
10/09/14 00:59:56
> TextBlock 内で Text をどこに表示するか
TextBlockにはないけど子要素をどう配置するかはHorizontalContentAlignment
HorizontalAlignmentは親要素に対し自分をどう配置するか
41:デフォルトの名無しさん
10/09/14 02:19:51
クラスはカスタムコントロールで作ってスタイルはリソースディクショナリ。
コントロールが複数ならgeneric.xamlでマージする。
42:デフォルトの名無しさん
10/09/14 12:59:41
WPFのカスタムコントロール(≠ユーザーコントロール)作るの難しすぎ
特にテンプレートのサポート
中は泥臭くていいからコンポーネントの利用者には完璧なAPIを提供しろっていう
いかにもMSらしい思想を感じる
43:デフォルトの名無しさん
10/09/14 13:25:56
オーバーライドではなく、根っこから記述すれだから、公開されている
テンプレートになかったら、自力で書くしかないね。
しかし XAML 使い出すと、フォームはもう使うことないわ。古臭すぎる。
44:デフォルトの名無しさん
10/09/14 13:36:37
データ仮想化サポートされないかなー
45:デフォルトの名無しさん
10/09/16 01:48:18
要素が現在画面に表示されてるかどうかを知る方法ってありますか?
46:デフォルトの名無しさん
10/09/16 01:51:51
ヒットテスト
URLリンク(msdn.microsoft.com)
泥臭いよなー
マジどうにかしてほしい
47:デフォルトの名無しさん
10/09/16 01:56:34
ヒットテスト
URLリンク(gun.world.coocan.jp)
48:デフォルトの名無しさん
10/09/20 03:50:29
BulletDecoratorのBulletってFrameworkElementFactoryで指定できないんだろうか?
49:デフォルトの名無しさん
10/09/22 00:58:44
WPFで文字の縁取りってどうやればいいの?
TextBlock オブジェクトをたくさん作ってずらせば出来そうだけど
もっとスマートな方法あるよね。
50:デフォルトの名無しさん
10/09/22 01:25:24
>>49
FormattedTextのBuildGeometryを縁取りをつけて描画。
URLリンク(msdn.microsoft.com)
小さめの文字ではあまり見栄えが良くないので使いどころに困る。
Effectでお茶を濁したほうが楽だろうなぁと思う。
51:デフォルトの名無しさん
10/09/22 01:30:50
>>50
神だわ、マジサンクス!
52:デフォルトの名無しさん
10/09/22 02:00:26
リサイズ中ではなくリサイズ後(マウス離したタイミング)で発生するイベントってないんだろうか
53:デフォルトの名無しさん
10/09/22 02:12:20
メッセージフックしてWM_EXITSIZEMOVE捕まえれば?
54:デフォルトの名無しさん
10/09/22 02:43:00
>>53
できた、ありがとう
55:デフォルトの名無しさん
10/09/22 23:34:42
不正な入力のチェックは、MVVMではどこでやるんでしょう?
・ViewModelでチェック
・ModelをIDataErrorInfoの具象にしてModelで値のチェック
・ValidatesOnExceptionで入力値の型をチェックさせることもできたり
・BindingのValidationRuleでチェックさせることができたり
・ViewのDependencyPropertyにValidateCallbackでもチェックできたり
・ViewのDependencyPropertyにCoerceValueCallbackを登録すれば
(チェックではありませんが)入力値自体を正常範囲に丸めたり、不正な入力を蹴ったりできたり
と、色々な箇所にチェックを入れれるようで、どれをどういう場合に使えばいいのやらサッパリで…
56:デフォルトの名無しさん
10/09/22 23:57:53
多く見るのは VM に IDataErrorInfo 実装 + ValidatesOnDataErrors だけど、
HasError とかに何を入れるかよね。
モデルに投げちゃう方式だと、モデルが WCF サービスでウェブ越しとかな時に困りそう。
最近多いのは、VM のプロパティに DataAnntations の検証属性つけて、
HasError とかの中では Validator.ValidateObject/ValidateProperty するだけとかかな。
O/R マッパーのエンティティクラスの方と2度手間になったりするんで、
T4 とか使ったコード生成で対処してる人もちらほら。
57:デフォルトの名無しさん
10/09/23 12:38:05
URLリンク(www.atmarkit.co.jp)
上記のサイトを参考にwin.xaml実行したのですが、xpcom.dllがないってエラー表示されます
ブラウザはgoogle chromeを既定に設定してます。
xamlを動かすには何かランタイムが必要なのでしょうか?
net flamework4.0はインストール済みです
58:デフォルトの名無しさん
10/09/23 14:47:05
Chromeでは動かない。
ググってみたらFireFoxをインストールしてパスを通せばChromeで動くようになるらしいけど
そんなんで動いても意味ないでしょ。配布先にそんなことさせるの?
XBAPなんて完全に見捨てられた技術だからブラウザで動かしたかったらSilverlight使うべき。
59:デフォルトの名無しさん
10/09/23 14:57:09
それマジで行ってんの?今週勉強したばかりの俺はどうしたらいいんだ
60:58
10/09/23 14:58:14
質問の意図を勘違いしてた。
LooseXAMLといって、.NETが入ってればIEで直接開けるものもあるんだけど、
一般にはXAMLはそれ単体では動かない。VSでビルドしてアプリケーションに組み込まれて初めて動くようになる。
>>57の情報は古いのでこっち参考に
URLリンク(www.atmarkit.co.jp)