トップページtech
1001コメント292KB

WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part7

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2010/08/22(日) 21:11:53
一向に普及しないユーザーインターフェースシステム
Windows Presentation Frameworkについて語るスレ。
パワフルで柔軟すぎるのが敗因か? 正直ついていけないよね…。

Visual Studio 2010
ttp://www.microsoft.com/japan/msdn/vstudio/
Microsoft .NET Framework 4 (Web インストーラー)
http://www.microsoft.com/downloads/details.aspx?familyid=9CFB2D51-5FF4-4491-B0E5-B386F32C0992&displaylang=ja
Microsoft .NET Framework 4 (スタンドアロンインストーラー)
http://www.microsoft.com/downloads/details.aspx?familyid=0A391ABD-25C1-4FC0-919F-B21F31AB88B7&displaylang=ja

関連スレ
Microsoft Silverlight その6
ttp://pc12.2ch.net/test/read.cgi/tech/1271580489/

過去スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part6
http://hibari.2ch.net/test/read.cgi/tech/1274423236/
WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5
http://pc12.2ch.net/test/read.cgi/tech/1261879110/
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/

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
0002デフォルトの名無しさん2010/08/22(日) 22:08:37
0003デフォルトの名無しさん2010/08/24(火) 01:40:56
>>1
0004デフォルトの名無しさん2010/08/27(金) 21:46:28
チェックボックスとボタンがあって、チェックボックスの値(true false)によって
ボタンのコマンドを変えたい場合、ボタンのコマンドをチェックボックスの値にバインドして
booleanからICommandへのConverterを書くしか方法はないでしょうか?

Styleのtriggerのpropertyはターゲット自身のプロパティしか参照できないですよね??

0005デフォルトの名無しさん2010/08/28(土) 01:17:36
>>4
TriggerはTargetName=チェックボックスのName、Property=IsChecked、Value=Falseを指定する。
SetterのTargetName=ボタンのName、Property=IsEnabled、Value=Falseを指定する。
0006デフォルトの名無しさん2010/08/28(土) 14:14:23
無理やり埋めるのは美しくない
0007デフォルトの名無しさん2010/08/28(土) 17:51:30
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究
0008デフォルトの名無しさん2010/08/31(火) 22:50:42
WPFToolkitの.NET4版はいつリリースされるのかと。
0009デフォルトの名無しさん2010/08/31(火) 22:55:16
忘れた頃にだろうな
忘れてたけど
0010デフォルトの名無しさん2010/09/01(水) 22:15:42
Expressionスレがないから聞くが
Expression3→4へ無償UPGキャンペーンってまだやってんの?
0011デフォルトの名無しさん2010/09/01(水) 22:41:57
Expression3インスコPCにW体験版入れれば製品版になるから
実質永久にキャンペーン中
0012デフォルトの名無しさん2010/09/01(水) 22:49:20
終了したとは聞いてないからやってるんじゃね
0013デフォルトの名無しさん2010/09/01(水) 23:07:49
>>11 >>12 ありがとね
0014デフォルトの名無しさん2010/09/03(金) 15:06:37
>>11

キャンペーンのこと知らなくて、体験版入れたら何時まで経っても使用期限が来ないもんで
登録情報見たら登録済みになっててびっくらこいたよ。
もしかして落とせるようになってたの体験版じゃなくて正規版??とか一瞬ドキドキしたw

Expressionの3とは別にインストールされるみたいだけど、3はアンインスコしちゃって
いいのかねえ???
0015デフォルトの名無しさん2010/09/03(金) 16:11:21
どうなんだろうね
入れっぱなしだけど…
0016デフォルトの名無しさん2010/09/05(日) 19:22:49
ListBoxItem を RenderTransform.RotateTransform で回転させても
ListBox の外枠でクリッピングされてしまいますが、これをはみ出させる方法はありますでしょうか?

とりあえず、ListBox と ListBoxItem の ClipToBounds = false にしてみましたが、
これではだめなようです。
0017デフォルトの名無しさん2010/09/05(日) 20:32:31
ListBoxItemでは多分無理
スクロールバー表示のため制御されてる
0018162010/09/07(火) 09:15:51
レスありがとうございました。
難しそうなんであきらめることにします。
0019デフォルトの名無しさん2010/09/07(火) 21:50:55
UserControl を作ってその中に ScrollViewer を入れました。
で、UserControl で、
<UserControl.InputBindings>
 <KeyBinding Key="Left" Command="HogeHoge" />
</UserControl.InputBindings>
としたんですが、ScrollViewer にキー入力をとられてしまい、
HogeHoge が発生しません。

UserControl で先にイベントを取得する方法はないでしょうか?
(PreviewKeyDown イベントを使う方法だと、KeyBinding が使えなくなって
しまうので、それ以外の方法でお願いします。)
0020デフォルトの名無しさん2010/09/10(金) 04:05:20
VS2010のプロパティで、"共通"のカテゴリに表示させる方法がわからねえ。
[Category("共通")] 以外あったら教えてくれ。
0021デフォルトの名無しさん2010/09/10(金) 11:37:14
[Category("Common")]
0022デフォルトの名無しさん2010/09/11(土) 20:01:19
Windowを常に最背面に表示する方法はありますか?
今はttp://gurizuri0505.halfmoon.jp/develop/csharp/zorderの方法を試してみたのですが、
最背面どころか画面が消えて見えなくなってしまいます。
0023デフォルトの名無しさん2010/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>

これだとダブルクリックイベントが複数回発生するんだけどどうすればいいの?
0024デフォルトの名無しさん2010/09/12(日) 10:09:45
>>22
ActivatedイベントでWin32APIのSetWindowPos関数使ってHWND_BOTTOMにセットするとか
一瞬アクティブになったりもするけど

>>23
e.Sourceで判断する
0025デフォルトの名無しさん2010/09/12(日) 10:13:53
>MouseDoubleClick イベント ハンドラーで Handled プロパティを true に設定すると
>ルート上のその後の MouseDoubleClick イベントは、Handled が false に設定された状態で発生します。

>コントロール作成者がマウスのダブルクリックを処理する場合は、
>ClickCount が 2 に等しいMouseLeftButtonDown イベントを使用する必要があります。
>これにより、要素ツリー内の別の要素がそのイベントを処理する場合に、Handled の状態が適切に伝播されます。

うわ面倒くさ
0026232010/09/12(日) 10:32:23
>>24
もうすこしくやしくお願いします
0027デフォルトの名無しさん2010/09/12(日) 10:36:42
複数回イベントが起こるのはしょうがないから
senderで判別しろってことだろ

下位の層でイベントを拾ったら上の層を無視するようにする
0028232010/09/12(日) 10:43:42
出来ました
ありがとうございました
0029デフォルトの名無しさん2010/09/12(日) 11:25:18
>>24
自分のやりたい事は壁紙を変更する事だと気づき、最背面はあまり関係ありませんでした。
でも、壁紙変更もWin32APIで出来る事がわかりました。
あまりWPF関係ないですね。ありがとうございました。
0030デフォルトの名無しさん2010/09/13(月) 02:25:12
iPhoneのようなササッと横に流れてUIが切り替わるようなカッチョいいアプリを作りたいんだけど、
ウィンドウ内で画面遷移させるのってWPFだとどうやるの?
UIをそれぞれリソースにしてContent = FindResource("...")とやれば一応動作はするんだけど、
これだとそれぞれのUIにコードビハインド付けられないし使いにくい。
PageはWeb用みたいなかんじだし、UserControlでまとめるのもなんか違う気がする。
0031デフォルトの名無しさん2010/09/13(月) 04:25:18
カッチョいいwwwwwwww
0032302010/09/13(月) 10:50:35
どうやらResourceDictionaryにコードビハインド付けられるみたいね。
それぞれのUIはこれで作ってMainWindowに統合する形でやってみます。ども
0033デフォルトの名無しさん2010/09/13(月) 13:22:27
LabelってIsMouseOverみたいなプロパティないの?
0034デフォルトの名無しさん2010/09/13(月) 13:36:04
普通にあるがな
http://msdn.microsoft.com/ja-jp/library/ms611061.aspx
0035デフォルトの名無しさん2010/09/13(月) 21:16:35
>>32
普通にUserControlだろ
リソースディクショナリにコードビハインドとかどう考えてもおかしい
0036デフォルトの名無しさん2010/09/14(火) 00:11:17
Grid の中に TextBlock をいれると、Grid の幅いっぱいに広がります。
テキストを表示するのに必要な幅を知りたいので、
これをよこいっぱいに広がらず WinForms の AutoSize = true の
ような状態にしたいのですが、そのような設定ができるプロパティ
とかありますか?

現在は、StackPanerl(Orientation = Horizontal)の中にいれて
横幅いっぱいまでひろがらないようにしていますが、
そのためだけに StackPanerl を使うのは無駄なような気がして、
なにか方法あるんじゃないかと思ってるんですが。
0037デフォルトの名無しさん2010/09/14(火) 00:16:54
>>35
たしかにデザイナも使えないしやめたほうがいいかも
それでやってみます
0038デフォルトの名無しさん2010/09/14(火) 00:20:05
>>36
HorizontalAlignment/VerticalAlignment?
0039362010/09/14(火) 00:52:41
できました。
HorizontalAlignment プロパティは知ってましたが、WinForms と同じで
TextBlock 内で Text をどこに表示するかという意味だとばかり思ってました。

HorizontalAlignent でコントロール自体の大きさが変わるとは・・・。
勉強になりました。ありがとうございました。
0040デフォルトの名無しさん2010/09/14(火) 00:59:56
> TextBlock 内で Text をどこに表示するか
TextBlockにはないけど子要素をどう配置するかはHorizontalContentAlignment
HorizontalAlignmentは親要素に対し自分をどう配置するか
■ このスレッドは過去ログ倉庫に格納されています