[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 22:01 / Filesize : 192 KB / Number-of Response : 878
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5



1 名前:デフォルトの名無しさん [2009/12/27(日) 10:58:30 ]
あたらしいユーザーインターフェースシステム、Windows Presentation Frameworkについ
て語るスレ。.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/

726 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 22:58:49 ]
いやいや現に使ってるしw
なにいってんの?

727 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 23:01:09 ]
もしかしたら古いコンバーター使っているんじゃないのか?
1年前に買った奴だと普通に使えたわ

728 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 23:40:58 ]
>>726
そういうのもう良いから。

しかし DirectInput に未対応なのはなんでなんだろね。


729 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 23:45:29 ]
XNA+DirectXならXBOXコン以外使える
WPF+XNAならXBOXコンしか使えない

730 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 23:48:59 ]
>>720
全部読んでサンクス

読んで思ったのが
stackpanelに複数配置されたコンテンツを
そっくり別のコンテンツに取り替えるようなのって
xamlじゃ無理?
画像を表示してた場所をすべてボタンに変えるとか
そういうのはやっぱりC#でやるのかね

決まった雛形だら自由に作れるような感じだけど
GUIの表示をごっそり変えるのはどうするのかな

次はバインド読んでみるか

731 名前:デフォルトの名無しさん [2010/04/29(木) 23:50:28 ]
ListBox.ScrollIntoView を使うと、指定したアイテムを画面内に持ってくることができますが、
一番端に表示されます。

これを一番端ではなく、もうちょっと内側(2、3個要素が見えるような位置)にしたいんですが、
どうすればよいでしょうか?

732 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 23:50:34 ]
>>729
ああ、そういうことか

733 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 23:53:22 ]
>>731
そういうかゆいところに手が届かないこと多すぎるよな
それの対処にやたら時間かかって先に進めないのが
すごくイラつくわ
コアの部分に全然時間かけれない

734 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 00:05:49 ]
2,3個上の要素を指定すればいいのでは・・・



735 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 00:11:44 ]
やってみたら例外がでた!→範囲内に丸めろよ…

やっと初心者がWPFをやる時代が到来胸が熱くなるな

736 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 00:46:35 ]
WPF みたいな一部でしか使えないものは危険。

737 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 00:53:21 ]
意味わからん

738 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 02:00:54 ]
>>718
>>729
このスレならどうせWindows専用ってことだろうから
joyGetPosをP/InvokeすればXBOXコントローラ以外も使える。
Windows 95から存在するAPIなので安心。
ttp://msdn.microsoft.com/ja-jp/library/cc410473.aspx


739 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 10:12:31 ]
WPF勉強しているんだけど
初心者にはあえてこちらの方がお勧めのような気がする
GUI部分とロジック部分を自然に分離して記述するから
ソースも見やすくなりそう

740 名前:デフォルトの名無しさん [2010/04/30(金) 13:01:04 ]
実際に初心者に使わせたら大半をコードビハインドに記述、
ViewModelでViewを生成し、
ViewがViewModelのコントローラという素敵構造にしたんだが…

741 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 13:18:34 ]
>>720
これずーっと読んでいって
第 3回 “見た目”を決めるリソースとスタイル
で詰まった
むずぅ

742 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 13:24:51 ]
>>741
そう?
WinFormでもImageListなんてあるけどあれの汎用版みたいなもんでしょ

743 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 13:26:15 ]
おっと途中になった
スタイルはCSSと似てるし

744 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 17:50:21 ]
みんなExpression Blen使ってるの?



745 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 21:31:35 ]
>>744
これからWPF試してみたいのでExpression Blend 4が早くでないかなと思ってる。
VS10が出たし、もうすぐだと思ってたんだがアナウンスがないな…

746 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 22:57:26 ]
ブレンド無しで WPF ってwww

747 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 02:07:09 ]
Blendなんて飾りですよ
ControlTemplate生成にしかわからんのです

748 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 05:48:20 ]
別にボタンを星型にしたいとか思わないしなあ

749 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 08:02:08 ]
ボタンを星形にするだけがテンプレートじゃないだろ
WPFの胆はDataTemplateやItemTemplate
VSだけだと手書きしないといけない

750 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 09:16:53 ]
Blendなきゃだめなのか
WPF一気にやる気なくなったわ

751 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 10:52:30 ]
やる気も金もない人間は必要とされていないようだ。

752 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 10:52:45 ]
2010を使い.NET4でWPFを始めてみました
ググりながら試行錯誤してコマンドとコンテキストメニューを繋ごうとしています
キー操作だと正常に動作し、PlayPause_Executeが呼ばれるのですが、
コンテキストメニューは見出しやキーの表示は合っていますが、グレー表示のままで選択できません
何が悪いのでしょうか?

タイマで定期的にCommandManager.InvalidateRequerySuggested();してみても変わらないようですし
キーを押したときにはCheckCanExecuteCommandが呼ばれますが、それ以外では呼ばれないようです

public class Commands
{
public static RoutedUICommand PlayPause = new RoutedUICommand("再生/一時停止", "PlayPause", typeof(Commands),
new InputGestureCollection { new KeyGesture(Key.Space) });
}

XAMLで(はしょっています)
<Window xmlns:local="clr-namespace:hoge">
<StatusBar.ContextMenu>
<ContextMenu>
<MenuItem Command="{x:Static local:Commands.PlayPause}" IsEnabled="True" />
</ContextMenu>
</StatusBar.ContextMenu>

C#側コンストラクタで
CommandBindings.Add(new CommandBinding(Commands.PlayPause, PlayPause_Execute, CheckCanExecuteCommand));

private void CheckCanExecuteCommand(Object sender, CanExecuteRoutedEventArgs e) {
e.CanExecute = true;
}


753 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 11:04:27 ]
>>751
お前は一日中いろんなスレで煽るしかできない人間みたいだな

754 名前:752 mailto:sage [2010/05/01(土) 14:06:29 ]
>>752
どうやらContextMenuの場合だけのようで、理由はまだよくわかりませんが
とりあえずコンストラクタの最後にFocus();を入れることで回避できることがわかりました。



755 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 14:11:55 ]
>>753
お前は一日中いろんなスレで煽られるしかできない人間みたいだな

756 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 14:48:48 ]
Blendなんて飾りですよ。漢は手書き。マジで、Blendは非プログラマ向けの
ツールだから、開発者はUIをちゃんと設計して手書きした方が覚えがいい。

757 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 14:51:15 ]
うむ確かに手書きで覚えないとここまで分離した作りになると
わからなくなるぞ

JavaScript書くやつだってhtmlやCSSは知ってるだろ?

C#とXAMLの関係ってそういうもんだよ

758 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 14:59:42 ]
非プログラマ向けとかまで言い切っちゃうのは逆にblendを過大評価しすぎ
手書きすることとUIを設計することは全然関係ないし
細かいアニメーションとかスタイル指定とかblendあったほうがいいに決まってんじゃん

759 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 15:05:52 ]
設計して、手書きしろと薦めただけだから関係なんて求められてもねぇ。
設計してBlendで作れるんなら別にそれでいいけど、細かいアニメも
スタイルも、設計さえしてあれば、手書きできるから、敢えてBlendじゃ
無いとできないものって無いでしょ。

感覚的に作りたいという意味でBlendはプログラマ的じゃないよ。
でも、非プログラマに使わせて使えるかというと、使えないんだけど。
下手にソースを汚されても困るし、やっぱBlendは要らないなぁ。
存在が非常に中途半端。

760 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 15:09:09 ]
ああそれだとまあ同じように感じてるのかな
現状のblendはプログラマがデザイン的な作業をすることをサポートするツールって感じる
で俺には有用
アニメ付けるのにプレイバックなしで手書きとかやってらんない

761 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 15:48:50 ]
ホームページビルダー使えたからって
プログラミングができるわけじゃない

762 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 16:41:15 ]
html・cssの手書きとかあんな糞つまらん作業したって別に自慢には

763 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 17:57:43 ]
>762
cssは手書きしてた頃しか知らない。誰でもできる技術になった頃には
辞めてたから。XAMLもアホでもできるようになる前には、辞めて別の
何かを始めるよ。

元々は、つまんないとかの話じゃなくて、プログラマなら、デザイナで
操作するだけじゃなくて、ソースで中身を覚えろって話なんだけどね。

764 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 18:46:17 ]
何こいつ気持ち悪い



765 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 18:55:34 ]
わろた
手書きしてる俺カッケー(キリッ

766 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 18:58:13 ]
>>763
アホでもできるようなコードしか書けないから
すぐに追い抜かれて嫌になるのですね

767 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 19:00:47 ]
並のレベルのプログラマならblendの出力なんかいざとなればいつでも読めるんだからどうでもいい話

768 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 19:06:25 ]
>767
あぁ、いかにもやったこと無いって感じのコメントだね。
できるけど、嫌んなるよ。

769 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 19:24:15 ]
>>767
やればできる、っていうのとは あんまり関わりたくない・・・

770 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 19:24:57 ]
どうだろね
まだ本質的にややこしいGUIは作ってないし
blendで弄って出てきたXAML見てなるほどとか言っちゃうことがあるレベルだからわからんけど
でもXAML一緒に表示して弄れるんだからあんま問題なくない?

771 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 19:52:49 ]
>770
仕様的に危ない点もあるけど、デザイナが他にいるとして、見た目は
他人が作るわけだ。大概のデザイナはソースが読めないから、
ソースにコメントを入れるとか、読みやすいソースを書くというセンスも
無く、Blendが生成したソースがそのまま送られてくる。

書き直そうと思っても、こういうソースになった意図(内部的な実装仕様)
を読み解かないと、書き直せない。けど、デザイナは内部実装の仕様なんて
存在自体を知らんよ。

一人でやるなら自分の頭の中だけで解決するから、好きにすりゃいいと思う。

772 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 20:07:41 ]
まあ俺はもともとblendがデザイナとの協働ツールとして優れてるとは全然思ってないからね

773 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 20:24:49 ]
言い訳するな

774 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 20:50:34 ]
言い訳ってw
>現状のblendはプログラマがデザイン的な作業をすることをサポートするツールって感じる
先にこう書いてるよ



775 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 21:36:36 ]
ListViewで6000行10列ぐらいのDataTableバインディングしてるんだけど、スクロールが遅い
コンテナのリサイクルと仮想モードは有効にしてて、遅延スクロールは最終手段ってことで保留してて、
現状でこれなんで、デザインどころじゃないんだが
兄さん達はどうやって最適化してる?


776 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 22:05:12 ]
>>775
表示しているところだけListViewに追加する
他はダミー

777 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 22:10:14 ]
バインドするアイテムを制限するしかない気がする。

778 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 22:22:34 ]
そういうの必要になったらなにを試すかなと考えたら
直結するんじゃなくてvisualBrush化して並べるとかかなと思った
スクロールは早そうじゃない?

779 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 22:42:03 ]
>>778
visualBrushが分からんので調べたらようはハリボテか!それ頂き!

適当にブラーかけて描画省略してもよさそうだ、
兄さん達ありがとう。試行錯誤してみるよ


780 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 22:44:25 ]
描画というより重いのはレイアウトだろ

781 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 03:19:00 ]
ボタンをひし形にして疑似3Dゲームのように並べるにはどうすればいいだろう?
理想としてはウインドウの大きさに合わせて縮尺が変わってくれるといいのだが・・・

782 名前:781 mailto:sage [2010/05/02(日) 03:40:35 ]
イメージとしてはこんなのです
ttp://tsushima.2ch.at/s/news2ch61559.png
青のラインの上をめざしてて、下の方は避けた挙動です。

783 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 04:38:03 ]
SkewTransform弄れば擬似3Dっぽい表現は一発
ウィンドウのサイズに追従させるのはパっとはわからない

784 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 04:57:30 ]
一人で作る小規模アプリにWPFは効率悪すぎる



785 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 05:12:47 ]
>>783
自己レス
初期表示で傾斜つけたコンテナをウィンドウに収まるように配置しとけばリサイズには勝手に追従するなあ
uniformgridならうまく拡大してくれるような気がする

786 名前:781 mailto:sage [2010/05/02(日) 05:15:31 ]
>>783>>785
朝早くありがとう
ボタン単体で傾斜つけてグリッドに埋め込んだりしてたけどどうもおさまり悪いので
ボタンを入れ込むグリッドそのものを回転しちゃえって方向で今調べてました・・・
Blend使った方が楽かなあ・・・・
こいつが出力するxamlで勉強した方が速そう・・・orz

787 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 05:30:40 ]
UniformGridでかっちりできるね
縦横比によっては見えなくなっちゃうけど
blendはそりゃあったほうがいいでしょ
なかったらこんなのめんどくさくて試す気もしないもん

788 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 06:16:28 ]
こういうことか

ttp://tsushima.2ch.at/s/news2ch61563.png

ひし形の場合って影は下と右どっちが普通なんだろう

789 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 06:19:16 ]
おっとボタン上のテキストは正面向いてないといけないのかなー
それだと一手間いるな・・・

790 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 06:19:45 ]
>>788
まさにそういうのです
まあ影はこの際いらないかなあ・・・
将来的にはスキンも考えてるので

791 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 06:30:26 ]
>>788
あれですかね
ボタンを回転させるよりボタンを星形にするようにベクターをいじって
ひし形のボタンを作った方がいいかもしれないですね

ただそういう場合ってヒットエリアって矩形なんだろかそれとも作った形そのままなんだろうか・・・

792 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 06:56:29 ]
ちなみに>>787で作ったのはこんなのね
ttp://tsushima.2ch.at/s/news2ch61565.png
簡単だけどかなり見劣りするな・・・


793 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 07:25:32 ]
>>792
なるほど・・・
こちらでもBlend入れてデザインしてみましたが難しいですねw
ttp://tsushima.2ch.at/s/news2ch61568.png

ボタンそのものの形は変わるのですがあたり判定が元のままw

794 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 07:53:44 ]
あら?傾斜(擬似3D)じゃなくて回転でいいわけ?
だったらこういうのも
ttp://tsushima.2ch.at/s/news2ch61570.png
簡単・・・プレゼンターだけをグリッドとは逆に回転させるスタイルを定義する
判定も問題なしなんだけどこれだとリサイズしたときにむちゃくちゃになっちゃうな



795 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 07:59:31 ]
>>794
まあ本当はウインドウサイズ固定などができれば楽なんですけど
なにせウインドウズアプリなのでどうしてもウインドウサイズの変更は
できて当たり前みたいなところがあるのがつらいんですよね・・・

まあこんな状況だからウインドウズ関連で指を使ったタッチパネルUIが
普及しないんでしょうけど

細かいタッチ制度を出せるマウスもしくはスタイラスのような
ポインティングデバイス向けUIは得意なんでしょうけどね・・・

796 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 08:08:12 ]
>>793
ちゃんとClipしていれば当たり判定は問題ないはず
フォーカスの破線は自分で描画(もしくは消す)

ついでに、>>788のXAML
ttp://pastebin.com/TngzgvvF

797 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 08:37:34 ]
>>796
ありがとうございます

うーん難しいw

798 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 10:51:49 ]
というか、ゲーム作るならこれぐらいボタン使わないで描画しろよって話だな
中学生でもできるぞ

799 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 10:53:36 ]
WPFの3Dはゲーム作成の為にある

800 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 10:57:55 ]
データの視覚化とかトランジション効果とかの為だろ

801 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 10:59:10 ]
>>798
こういうUIを採用してるアプリが思い当らなかったのでゲームを例題にしてますが
ゲームじゃないですよ

802 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 10:59:52 ]
>例題にしてますが
>ゲームじゃないですよ
例題にしてますが
作っているのはゲームじゃないですよ

803 名前:デフォルトの名無しさん [2010/05/02(日) 11:06:15 ]
ttp://tsushima.2ch.at/s/news2ch61577.png
改造して影をつけてみたけど解像度あがると重い・・・

ttp://tsushima.2ch.at/s/news2ch61578.png
赤丸のあたりに別途ボタンをつけたりする方法がわからない・・orz

804 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 11:32:16 ]
Gridはレイヤーみたいな使い方もできるぞ
がんばれ



805 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 11:42:44 ]
道具に振り回されている感じだね
もっと頭使えよ

806 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 12:03:17 ]
gridの使い方もわからない男の人って…

807 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 13:10:06 ]
>>803
これが進化したらビューポイントが出来上がりそうだと思った。

808 名前:デフォルトの名無しさん [2010/05/02(日) 17:30:25 ]
>>804
はい

>>805
まあ休みの暇つぶしに始めたのでいろいろわからないことだらけなんですよね・・・

809 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 19:28:29 ]
>>803
これ格闘ゲームのキャラクター選択画面みたいだな

810 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 19:52:56 ]
こんなしょぼいもん作って喜んでるって
レベル低いな

811 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:04:58 ]
俺のデザイン最強(キリ
こんなしょぼいもん作って喜んでるって
レベル低いな(キリ

どんなUI作ってるんだろう見てみたい

812 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:06:23 ]
言ったもん勝ちだし。
MVPの俺が言うんだから確か。

813 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:11:33 ]
そういえばWinFormのClientSizeに相当する動きってどうやればいいんだろう

814 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:15:45 ]
コントロールとDataSetとの接続の仕方が判らない・・・
データベースを介さないと出来ないのか?



815 名前:781 mailto:sage [2010/05/02(日) 20:21:27 ]
>>810
新しいことへの挑戦中なのでこれもラフスケッチみたいな物ですよ
今後でるであろうタッチパネル搭載端末で使いやすいUIの研究ですから
ある程度決まった画面内やりとりするってのはゲームUIから学ぶことが
多いのでこれもその一つなんですよ

WPFの勉強も兼ねてですから
まあ偉い人にはわからないでしょうねw

816 名前:781 mailto:sage [2010/05/02(日) 20:31:16 ]
勝手にコメントしないでください

817 名前:781 mailto:sage [2010/05/02(日) 21:12:26 ]
じゃあ、俺が変わりに。

アノデスネ・・・。

818 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 21:16:50 ]
Fromの上にWPFのMediaElementを乗せた簡易メディアプレイヤーを
.NET4で完全WPFに書き換えたら重くなった
やってることはほとんど大差ないのに何故だ

819 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 23:36:30 ]
>>813
Window.ContentのWidthとかHeightじゃだめ?

820 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 23:43:45 ]
>>815
研究なら自分でやることだな
この程度のことを質問しているようじゃ
何も出来そうにないな

821 名前:781 mailto:sage [2010/05/03(月) 01:19:15 ]
>>820
その人成りすましなんですって・・
ID欲しいよ・・・

822 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 01:40:50 ]
>>819
ありがとうございます。

別件で
動的にコントロールを追加したりする場合はやはりC#側で制御するしかないんですかね?

823 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 03:13:09 ]
動的の度合いがわからない

824 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 08:03:33 ]
技術制約無視して条件分けとか言い出すんだから「xamlにコード埋め込め」でいいと思うよ



825 名前:818 mailto:sage [2010/05/03(月) 10:07:19 ]
>>818
動画の上にテキストを表示するためにOuterGlowBitmapEffectを使ってたけど
.NET4で削除された?のでDropShadowEffectに書き換えたがこれが重いらしい
ウインドウサイズをいじって動画と重ならないようにすると少しだけ軽くなり
非表示にしたりEffectを無効にするとぐんと軽くなる

ヘルプの.NET4の相違点のページかなんかで
描画方法が変わったとか何か書いてあった気がするけどページが見つからない

826 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 10:27:06 ]
BitmapEffectはパフォーマンスがクソだからというので
ピクセルシェーダでGPUを思いっきり使うようになったんだけど(.NET3.5〜)
ハードウェアが対応してないとか

827 名前:デフォルトの名無しさん [2010/05/03(月) 21:51:18 ]
>>825
俺は、動画はないけど文字列をいっぱい表示してるけど縁取りでDropShadowEffectを使ってみたら重いな、OuterGlowBitmapEffectも重かったけどね
ボカシの処理を無くして縁取りの処理をもっと軽くできないものか・・・

828 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 07:05:54 ]
>>827
ぼかしを無くして影を落とすだけでも重かったので、妥協して半透明の背景をつけることにした
BitmapEffectが重いからって話だったはずなのにこっちの方が重くなるのが納得いかない
グラボは6800XTだからShader 2.0には対応してるはずだけど3.0が必要なのかな


829 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 15:31:17 ]
カスタムコントロールにResourceDictionaryを定義した
xamlファイルを結びつけるのはどうすればいい?
カスタムコントロールのコードからリソース内の表示用部品を利用したいのだけれど。

830 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:01:51 ]
>>829
xaml の読み込み
ResourceDictionary.MergedDictionaries
or
XamlReader.Load(file)

部品の取得
FrameworkElement.FindResource(key)
or
ResourceDictionary[key]

831 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 18:34:43 ]
>>829
これでも
ResourceDictionary rd = new ResourceDictionary();
rd.Source = new Uri("pack://application:,,,/MyApp;component/Dictionary1.xaml", UriKind.Absolute);
string myValue = rd["MyValue"] as string;

832 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 18:44:44 ]
>>830-831
さんくす!
使うリソースは1つだけなので
this.Resources.Source = new Uri("pack://application:,,,/testcontrol/test.xaml");
でいけた。this.Content = this.FindResource("button");てな感じで使えるね。

これでようやくコントロールの表示部分に取り掛かれるわ

833 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 19:03:40 ]
日本のメーカーPCはグラボ非搭載が主流だからWPFはきついな

834 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 19:28:07 ]
誰一人つられないんだからね



835 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 00:38:09 ]
現在主流のCore-iモデルの内蔵はintel HD Graphicsで
そのコンパネがWPFだったりするんだけどな

836 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 01:34:12 ]
WPFってなんだろう

837 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 01:44:00 ]
人生・・・かな?

838 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 03:17:03 ]
鉄板麺!!

839 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 16:50:17 ]
WPFはAdobeのあれをパクったような感じ

840 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 08:43:05 ]
国連になんかあったな

841 名前:デフォルトの名無しさん [2010/05/06(木) 23:49:46 ]
Window の中に Grid が1つあり、
その中に同じ大きさの Viewbox を3つ配置しています。
3つのViewboxの位置は同じで、重なって配置されます。

それぞれのViewboxにはGridを配置し、その中には
・透過色を指定したPNG画像と
・Rectangleを1つずつ配置しています。
3枚の画像は同じ大きさで、UniformToFill にしています。
Rectangleは、各画像の背景色の領域中に配置するようにしています。
また、Rectangleはクリックされると Fill が変わるようにしています。

このとき、一番階層が高い Viewbox 内のRectangleしかクリックに反応してくれません。
2番目、3番目のViewbox内のRectangleも反応させるにはどうしたら良いのでしょうか?

ソースを以下にUPしましたので、よろしくお願いいたします。
ttp://www.dotup.org/uploda/www.dotup.org866125.zip.html
pass: wpf

842 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 00:02:32 ]
現象が発生する最小のプログラムでないと誰も見ないぞ
単純に一番目にRect三つ配置すればいいんじゃねーの

843 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 00:05:50 ]
>>841
Grid.Row, Grid.Column を分けずに、一つのセル(?)でやってるから、最後の Viewbox がイベントとっちゃって、その兄弟にはイベントが伝播しない。
素直に Canvas 使うか、Grid.Row を3つに分けなさい。

844 名前:841 mailto:sage [2010/05/07(金) 00:12:10 ]
>>842
急いで書いたため、情報不十分でした。
各Viewboxは個別に移動、拡縮をしたいのです。
(それに応じでViewbox内のオブジェクトも、移動+拡縮させたいです)
ですので、一番目にRect3つ配置ではダメなのです。

>>843
ありがとうございます。
いただいた情報を元に考えて見ます。



845 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 00:36:07 ]
>>844
Grid を入れ子にすれば、Grid で MouseUp をとるように変更すればできたけど・・・
もう少しスマートな方法ないかね。Viewbox 使わなければ Background に Transparent 設定してイベント透過させられるのだけど。

<Grid MouseUp="rectangle_MouseUp">
  <Viewbox />
  <Grid MouseUp="rectangle_MouseUp">
    <Viewbox />
    <Grid MouseUp="rectangle_MouseUp">
      <Viewbox />
    </Grid>
  </Grid>
</Grid>

-----------
private void rectangle_MouseUp(object sender, MouseButtonEventArgs e)
{
    ((((sender as Grid).Children[0] as Viewbox).Child as Grid).Children[1] as Rectangle).Fill = Brushes.Red;
}

846 名前:845 mailto:sage [2010/05/07(金) 00:40:27 ]
Grid 全体で MouseUp とってしまうから駄目だった。
忘れてくれ。

847 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 00:43:11 ]
つまり透過してるので最前面でFill状態の画像をムシして
その後ろの画像にヒット判定させろ?

無理じゃね?

848 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 01:05:45 ]
いや3ついっぺんにクリックされたように扱いたいって話じゃないの?

849 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 01:09:17 ]
>>844
読み流してた
つまり>>847なんだなごめん

850 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 01:10:43 ]
>>848
それだったら全面のやつがイベント受けたらほかの物にも伝えるとかそんなんでいいんじゃね?
それか画像を管理してるコンテナ、この場合はGridがクリックイベント拾うとか

851 名前:841 mailto:sage [2010/05/07(金) 01:12:58 ]
皆さん、ありがとうございます。
やはり透過処理していようとも、画像の領域から
イベントを透過させることは無理(難しい?)みたいですね。

>>847-848
一番の理想は、”見えているオブジェクトがイベントを拾う”です。
うpしたものを見ていただけているか分かりませんが、
例えば2番目のViewboxを仮に下方向にAnimationさせた場合、
2番目のViewboxに配置したRectangleは「黒色」の後ろに隠れます。
このとき、隠れたRectangleはクリックできないようにしたいです。

が、それはあくまでも理想であり、3つヒットでも出来るなら嬉しいです。

852 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 01:43:08 ]
一番上が拾うんでいいならTunnelじゃいかんのかね

853 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 01:50:25 ]
しかしwindowsはマウスありきでできてるから
こういうGUIまわりは作りにくいな

854 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 02:04:46 ]
>>852
TunnelってPreview〜のあれ?
重ねたImageに対してトンネルなんてできるのか?



855 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 21:31:34 ]
>>841
ViewBox内のImageに
IsHitTestVisible="False"
をいれたら下のRectangleも反応したよ

ただ、これだと隠れたRectangleをクリックさせない
というようなことはできないけど

856 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 22:00:45 ]
Imageに不透明な部分だけマスクするClipを指定すればいいんじゃないの?

857 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 23:09:28 ]
4の良書でないかなぁ

858 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 05:54:20 ]
WPF4のデザイナで配置したコントロールのフローがWPF3と違いますよね…?

ウィンドウのリサイズを行うと、WPF3だと勝手に連動してコントロールのサイズが変わるのに、WPF4だとウィンドウだけしかリサイズされない…。
結果、プロパティやXAMLをちょこっと変更しなければいけないのだけれど。

859 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 06:52:09 ]
update
code.msdn.microsoft.com/WPFShell/Release/ProjectReleases.aspx?ReleaseId=4332

860 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 10:34:01 ]
>>858
コントロールの上下左右に小さな円があるだろ
それクリックするとコンテナの端からの距離が固定される(WinFormsのAnchor相当)

861 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 11:12:39 ]
WPFのフォントレンダリングをフォームアプリと同じにすることはできないんでしょうか?
VS2010がフォームと同じフォント表示になったのに、
自分で作ったWPFアプリケーションのフォントレンダリングが前のままです。

862 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 11:59:32 ]
同じというのは違うけど。
3のソースを4でコンパイルするだけじゃ駄目。

TextOptions.TextFormattingMode
TextOptions.TextRenderingMode


863 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 13:08:49 ]
FlowDocumentに表示されている内容の表示上のサイズを取得する方法はありますか?

864 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 22:23:02 ]
>>860
クリックですか。
クリックしたところ、希望の動作になりました。

ありがとうございました。



865 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 21:59:51 ]
int型のプロパティPercentがあって、
それをバインドしているTextBlockでは、後ろに"%"を付けたいときって
どうすればいい?

866 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 22:01:19 ]
IValueConverter
するまでもないな、StringFormat

867 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 22:17:23 ]
866 なんか分かりづらくなっちゃった
{Binding Path=Percent, StringFormat=0\\%}
これでいいのか?
マークアップ拡張内は書式指定文字列が訳分からんことになるな

868 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 17:42:43 ]
>>867
おおーまさしくこれだ。
なんで円記号が2つも…って思ったけどマークアップ拡張内では円記号もエスケープ必須か

869 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 17:45:00 ]
途中で送信しちまった。>>867サンクス

870 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 18:13:55 ]
GUIプログラミングの初心者は、WPFから入るよりForm使った方がいいのかな?
WPFはまだ情報量少ないみたいだし

871 名前:デフォルトの名無しさん [2010/05/12(水) 18:18:10 ]
>>870
最終的に何を作るかでも変わるけど似てるようでかなり違うからなあ
下手にFormの方を覚えるとWPFだと戸惑うこともあるよ

872 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 18:21:51 ]
GUIプログラミングはWPFから入ったけど今更Formなんて勉強する気しないよ

873 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 19:48:05 ]
>>872
最初からWPFって、どうやって学習した?
後学のために教えて欲しい。

874 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 19:53:59 ]
>>873
ネットで情報収集。殆どはMSDNから。
書籍はエッセンシャルWPFだけ買った。
質問はここやC#スレで。
まだ全体は勉強してないけどな。目的のアプリ作るには一部だけでも十分。
C#と.NET Frameworkも同時にだったからだいぶかかったが。



875 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 19:54:50 ]
WPFって動的にコントロールを生成しちゃいけないみたいな感じが面倒

876 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 20:02:06 ]
え?DataTemplate使えば必然的に動的に生成しまくりだろ?

877 名前:デフォルトの名無しさん [2010/05/12(水) 20:03:39 ]
>>875
そんなことはないんじゃないの?
WPF側で名前つけておけばFormでやてったようなことはできるし
そういうのがだめってのならWPFなりの書き方すればいいだけだし






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<192KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef