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/
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なりの書き方すればいいだけだし