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

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2011/03/18(金) 22:23:03.40
絵で描いてもらえればそれでいい
953デフォルトの名無しさん:2011/03/18(金) 22:32:24.18
Blendのデータストアとかアホかと思う
結局XAMLでプログラミングしてるだけじゃん
954デフォルトの名無しさん:2011/03/19(土) 11:02:58.84
折れ線の描画方法をおしえてください
955デフォルトの名無しさん:2011/03/19(土) 11:03:42.62
Polyline
956デフォルトの名無しさん:2011/03/20(日) 04:01:40.82
VisualState内のStoryboardで、
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="RenderTransform.X" Storyboard.TargetName="LayoutRoot">
<EasingDoubleKeyFrame KeyTime="0" Value="{Binding ActualWidth, ElementName=LayoutRoot}"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
こんなふうにValueに動的に値をいれたいんだけど、Storyboard内ではBindingは使えないらしい。
ウィンドウサイズによって値が変わるので動的にやりたいんだけど何かいい方法ないですかね?
957デフォルトの名無しさん:2011/03/20(日) 21:26:04.30
OuterGlowBitmapEffectって.net4.0でビルドすると表示されない?
MSDNではBlurEffect使えって書いてあるけど
元絵とブラーさせたやつを重ねるのはメンドクサイ
何か良い方法はありませんか?
958デフォルトの名無しさん:2011/03/22(火) 09:29:10.94
Freezableを分かりやすく解説してくれ
959デフォルトの名無しさん:2011/03/22(火) 12:03:42.97
クリリンのことかー!
960デフォルトの名無しさん:2011/03/22(火) 15:43:52.28
ドキュメントに書いてるだろ・・・
961デフォルトの名無しさん:2011/03/22(火) 16:10:17.04
>>956
添付プロパティとして親のサイズに対する比率(0-1)で要素の位置を指定できるPanelを自作するとか
ピクセルシェーダならそういう条件での移動は簡単にできるので、移動させるだけならさすがにやりすぎだと思うけど
他にもエフェクトかけたりするならついでに移動もピクセルシェーダでやってしまう手もある
>>957
DropShadowEffect{ShadowDepth=0}
962デフォルトの名無しさん:2011/03/22(火) 16:25:39.63
>>961
なるほど、カスタムパネル、ピクセルシェーダー。目から鱗です。
Canvas並の機能のGrid軽量版をつくろうかと思ってたのでまずはカスタムパネルやってみます。
963デフォルトの名無しさん:2011/03/22(火) 17:32:43.80
MainViewのメニューコマンドでいろいろなダイアログをモーダルで開くタイプのアプリケーションを
MVVMで作成しようとしています。
このとき、MainViewModelのコマンドからダイアログ(HogeDialog)を開くにはどうするのがいいんでしょうか。
(1) HogeDialogを先に作り、HogeDialogの中でHogeDialogModel(ViewModel)を作る
(2) MainViewModelでHogeDialogModelを先に作り、HogeDialogを後付けする
どちらにしても、HogeDialogをMainViewModel内で直接newすると
VMがVに依存することになってしまうので、HogeDialogはMainViewModel以外の場所で作る必要がありますよね。
それを考えると、(2)の方が(1)よりも構造がシンプルでVM間のデータの受け渡しも楽になると思うのですが
webでよく見かけるのは(1)の方ですよね。
そもそも単体テストを楽にするのが目的なんだから、(2)のようにVM同士を依存させるのは避けて
必要なものだけInteractionRequestなどを通して間接的に渡した方がよいということなんでしょうか。
964デフォルトの名無しさん:2011/03/22(火) 19:13:17.24
>>961
DropShadow使ったらいいのか…
ありがとう、できました。
965デフォルトの名無しさん:2011/03/22(火) 20:17:33.37
DropShadow だとタイトルバーみたいなグロー効果でないんだけど
966デフォルトの名無しさん:2011/03/22(火) 20:25:14.96
この話題定期的に出るNE!
967964:2011/03/22(火) 20:52:21.59
パッと見できたと思ったけど
下のと比べると薄い…
ttp://msdn.microsoft.com/ja-jp/library/system.windows.media.effects.outerglowbitmapeffect.aspx
968デフォルトの名無しさん:2011/03/22(火) 22:08:50.87
アニメーションが使いやすいな

Storyboadで回転しながら拡大しつつ色を変化させて移動
なんてDirectXとかでやったらちょっとコードがごちゃごちゃするけどXAMLならスッキリかける
969デフォルトの名無しさん:2011/03/23(水) 11:54:36.84
>>968
そういうのはストーリーボード相当のものを自前で実装するからごちゃごちゃしませんよ。
970デフォルトの名無しさん:2011/03/23(水) 13:23:06.19
その理屈ならWPF相当のものをDirect3Dで自前で実装すればごちゃごちゃしないし
Direct3D相当の抽象化レイヤを自前で実装して直接ハードを叩けばごちゃごちゃしないね
971デフォルトの名無しさん:2011/03/23(水) 13:28:29.18
WPFやFLASHほど高機能ではないけどね。

アニメーションエディターは2DだとFlashやDirectorやアフターエフェクツから取り込んだりね。
ほとんどのところではベクター画像とりあつかってないよ。

3DだとMayaとかMaxのデータをそのまま再生できるようにしてりしてます。
972デフォルトの名無しさん:2011/03/24(木) 15:28:35.14
OnPropertyChangedって意外に重いのね
973デフォルトの名無しさん:2011/03/24(木) 15:49:25.44
UIの更新とかに比べたら誤差だからどうでもいい
974デフォルトの名無しさん:2011/03/24(木) 16:07:45.70
500個くらい値かえたら結構カクカク
975デフォルトの名無しさん:2011/03/24(木) 16:11:40.07
WinFormsのころはBeginUpdateってあったろ
それと同じこと
976デフォルトの名無しさん:2011/03/24(木) 16:13:52.03
UIの更新に時間がかかってるだけで
OnPropertyChangedは関係ないな
使い方が悪い
977デフォルトの名無しさん:2011/03/24(木) 16:24:11.62
どうすればいいの?
978デフォルトの名無しさん:2011/03/24(木) 16:34:57.71
わかりません
情報を出してください
979デフォルトの名無しさん:2011/03/24(木) 16:49:25.60
Rect(形状)と文字列(色の名前)のプロパティとをもつクラスAがあって
ObservableCollection<A> OCを用意して
ItemsControl内でRectangleGeometryでAのプロパティをBindingして箱パコパコ描いてて
MouseMoveでOCのヨウ素の文字列を書き換えてるだけ
980デフォルトの名無しさん:2011/03/24(木) 16:54:52.16
おい、おまえのプログラム放射線だしてるぞ!
981デフォルトの名無しさん:2011/03/24(木) 20:30:17.20
いまこんなの書いてるんだが
http://ideone.com/Zq6TX

CommandParameterの指定をもう少しマシにできないものか
CommandParameter="{Binding PlacementTarget.SelectedItems,RelativeSource={RelativeSource FindAncestor,AncestorType=ContextMenu}}"
じゃなくて別なアプローチで…

これが駄目な理由はよく分からない
http://ideone.com/5BguP
982デフォルトの名無しさん:2011/03/24(木) 23:53:35.32
WPFとは全く関係ないけど、GUI以外軽視してるプログラムが多くて悲しい
ワープロソフトにたとえるなら保存するときはいちいちファイル→名前をつけて保存(or上書き保存)をクリックしなきゃならなくて
Ctrl+Sキーで保存する機能がない、みたいな。


プログラマはもっとユーザーインターフェースのこと考えようぜ。
983デフォルトの名無しさん:2011/03/24(木) 23:58:02.93
( ´_ゝ`)フーン
984デフォルトの名無しさん:2011/03/25(金) 02:35:38.80
てか、それ、MSは再三言ってることじゃない。
985デフォルトの名無しさん:2011/03/25(金) 09:06:22.82
WinFormsのころはBeginUpdateに相当するものはありますか?
実現できますか?
986デフォルトの名無しさん:2011/03/25(金) 13:08:34.04
CompositionTarget.Rendering使うと
あるプライベート変数が
イベントハンドラから見たときと
それと別のスレッドから見たときとで値が異なるということが起きてるのですがなぜでしょう?
987デフォルトの名無しさん:2011/03/25(金) 22:55:23.95
考えられるのは、自分の忘れてるところで書き換わってるか、
スレッドローカル属性付けちゃってるか?
988デフォルトの名無しさん:2011/03/25(金) 22:56:33.75
>>985
ViewModel側でObservableCollection使うのやめて、
自前で、自分の好きなタイミングでCollectionChanged起こすようなコレクション作ればいいんじゃないかな。
989デフォルトの名無しさん:2011/03/26(土) 08:13:41.66
まあ、やもやしている人が多い部分ではある。
http://togetter.com/li/116145
990デフォルトの名無しさん:2011/03/26(土) 08:24:35.69
見た目とコードの分離なんて机上の空論だよなw
まで読んだ
991 忍法帖【Lv=4,xxxP】 :2011/03/26(土) 08:52:44.19
美人デザイナーと仕事ができる可能性を残している
992デフォルトの名無しさん:2011/03/26(土) 13:55:01.55
>>989
アーキテクチャパターンを実装パターンと混同してるからそういうことになるんじゃないのかな。
MVCとかMVVMってどっちかって言うとアーキテクチャパターンなのに、
実装レベルの同一性で議論してないか、それ。
993デフォルトの名無しさん:2011/03/26(土) 15:24:16.55
でも純粋に実装抜きでアーキテクチャだけならMVPパターンと同じでしょ
ViewとPresenterの間の通信にWPFのバインディング機能を使えば便利じゃね?
というのがMVVMなんだから、どうしても実装抜きには議論できないと思う
994デフォルトの名無しさん:2011/03/26(土) 15:34:47.45
MVPよりMVVMのほうが単体テストしやすいような
995デフォルトの名無しさん:2011/03/26(土) 15:35:40.61
いやー、わざわざそれに名前付ける必要あったのかなとも思う。
正直、ステートフルで仮想化されまくりなGUI向けMVCって言い方でもよかった気がする。
996デフォルトの名無しさん:2011/03/26(土) 15:44:45.71
WPF用に作られた一般的なViewModelに対するViewを
もしWinFormsで実装するとしたら、Viewがdynamic型を通してViewModelを監視したり
ViewModelのコマンドを実行するようにすれば、V->VMの結合の強さもMVVMと全く同じになるけど
それをMVVMと呼ぶかというと…やっぱりMVPじゃないかなw
997デフォルトの名無しさん:2011/03/26(土) 15:46:28.14
>>995
「ステートフルで仮想化されまくりなGUI向けMVC」長いよw
998デフォルトの名無しさん:2011/03/26(土) 15:50:46.81
いや、もちろん、一般向けに言うときはMVCしか言わない。
どうせ細かい実装わかってない人にはそれで十分じゃなかったかなぁって。
999デフォルトの名無しさん:2011/03/26(土) 15:55:29.61
次ぎ立てるから黙れ
1000デフォルトの名無しさん:2011/03/26(土) 15:58:28.12
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part9
http://hibari.2ch.net/test/read.cgi/tech/1301122694/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。