WPF(XAML, XBAP, .Net ..
[2ch|▼Menu]
83:デフォルトの名無しさん
09/12/31 22:55:38
URLリンク(karlshifflett.wordpress.com)
URLリンク(karlshifflett.files.wordpress.com)

このBusiness LayerとModelの関係がいまいちイメージ出来ません。
メモ帳のようなSDIアプリを例にすると、どういう感じになるのでしょうか?

84:デフォルトの名無しさん
10/01/01 11:16:24
>>83
メモ帳には無縁の世界

85:デフォルトの名無しさん
10/01/02 20:28:47
>>83
Modelが文字のバッファで、
Business Layerは、文字の切り取り/貼り付けといったメモ帳の機能。


86:デフォルトの名無しさん
10/01/09 11:39:06
WPFつくりずらいな
一回コンパイル失敗すると二度と通らなくなったりする

87:デフォルトの名無しさん
10/01/09 12:04:16
それは流石に使う側の問題だと思う

88:デフォルトの名無しさん
10/01/10 05:11:41
Popupが使いにくすぎる。Primitivesの癖に…


89:デフォルトの名無しさん
10/01/15 00:06:39
折れ線を描くのはどうすればいいですか?

90:デフォルトの名無しさん
10/01/15 00:27:29
Polyline


91:デフォルトの名無しさん
10/01/15 00:49:21
ありがとう
DrawingGroupで使えないんだ

92:デフォルトの名無しさん
10/01/15 01:19:43
URLリンク(msdn.microsoft.com)

93:デフォルトの名無しさん
10/01/15 11:23:28
ありがとう、ためしてみる

94:デフォルトの名無しさん
10/01/15 12:01:18
Imageって座標がマイナスだと勝手に全体を移動させてしまうのね

95:デフォルトの名無しさん
10/01/15 13:31:20
>>94
???

96:デフォルトの名無しさん
10/01/15 14:20:51
(-10, -10)に字を書くと(-10,-10)が左上角に表示されるように全体が右下方向に移動した
座標が大きいときは表示されないのに

97:デフォルトの名無しさん
10/01/15 15:01:43
地球を一周させれば元にもどる( ・ω・)y─┛〜〜

98:デフォルトの名無しさん
10/01/15 16:14:47
やっとわかった
DrawingGroup.ClipGeometry設定すればいいのか
とりあえず97は地球七周半してこい

99:デフォルトの名無しさん
10/01/17 17:57:07
1秒かかりますが

100:デフォルトの名無しさん
10/01/17 18:29:20
97から見れば0秒なので問題ない

101:デフォルトの名無しさん
10/01/18 10:34:35
地球七周半というのは都市伝説なのに(´・ω・`)

102:デフォルトの名無しさん
10/01/18 12:12:10
>>101
なんで?
光の速さが秒速30万kmで地球の赤道付近の円周が約4万kmだから
ほぼ7.5周じゃん?

103:デフォルトの名無しさん
10/01/18 12:14:59
>>102
・光は地表に沿って曲らない
・真空じゃない

ようするに揚げ足とり。


104:デフォルトの名無しさん
10/01/18 13:05:11
光にスピードなどありません。すべて一瞬です

105:デフォルトの名無しさん
10/01/18 13:14:30
光の速度とWPFの関係について140字以内で述べよ。(10点)

106:デフォルトの名無しさん
10/01/18 13:16:47
WPF → WPF/E → Silverlight → 銀の光

107:デフォルトの名無しさん
10/01/18 15:27:54
1 8  3  6\
 × × ×   5
9 2  7  4/

上記のように点を数字順にたどるgeometryを定義して
閉じた部分をそれぞれちがう色で塗りつぶしたいのですがどうすればいいですか?

108:デフォルトの名無しさん
10/01/18 15:36:50
WPFと関係あるのか??

109:デフォルトの名無しさん
10/01/18 21:58:01
linergraなんとか使えば?
自動で塗り分けろ? じゃあ仮にそういう機能があったとして、どの場所が何番目の色ってどうやって指定するつもりだい

110:デフォルトの名無しさん
10/01/18 22:44:36
linergradientbrush?
よくわかんない

しゃーない
交点探してチマチマやるか

111:デフォルトの名無しさん
10/01/18 22:57:41
いつのまにかFirefoxがXBAP WPFブラウザアプリ非対応になってやんの。
さっさとSilverlightに代替えしろってか。まあWCF対応バインディングも増えたし。

112:デフォルトの名無しさん
10/01/19 11:55:31
grid で showgridlines プロパティを有効にして表示される線の種類を変えたいのですが・・・
簡単にはできないでしょうか?

113:デフォルトの名無しさん
10/01/19 12:04:59
> グリッド線を有効にすると、Grid 内のすべての要素が点線で囲まれます。
> このプロパティはレイアウト上の問題をデバッグするためのデザイン ツールとして用意されているものであり、
> 製品品質のコードで使用するためのものではないため、点線以外は使用できません。
> Grid 内に線を表示するには、Grid 内の要素に対して境界線を含むスタイルを設定します。

114:デフォルトの名無しさん
10/01/19 13:27:20
>>113
ありがとうございます。

諦めてセルになる部分にBorderとCanvasでも噛ませて中にコントロールでも突っ込みます。

115:デフォルトの名無しさん
10/01/21 14:52:10
WPF初デビューでみなさまよろしこ

これってアプリなのに内部的にはクラサバもしくはJavaではよく聞くMVCモデル
で動いてるような物ですよね
つまりc#で描く側が鯖イメージでXAMLで書いたり表現するGUIがFormぽく振舞ってる
ブラウザというか

116:デフォルトの名無しさん
10/01/21 14:55:21
概念はさほど重要ではない…いや重要か
.NET自体動作原理はVMに近いものだし

117:デフォルトの名無しさん
10/01/21 14:59:19
>>116
結構重要だと思いますw

WPF以前のアプリだと密接でしたがWPFだとたとえばTreeViewにデータ流し込むにしても
やってることはC#で書いたListをどこかにあるDBのように見ますし

なんというかunixのXというかなんというか

118:デフォルトの名無しさん
10/01/21 15:02:59
というかそんな中身はどうでもよくて重要なのはグラフィカルなGUIってところなんですが
参考になるサイトはないでしょうか?


119:デフォルトの名無しさん
10/01/21 15:35:47
とってもVBだと思います

120:デフォルトの名無しさん
10/01/21 17:15:53
Xとはじぇんじぇん違うと思います。


121:デフォルトの名無しさん
10/01/21 21:39:37
XAMLとコードビハインドは普通は密結合だよ
Form1.Designer.csとForm1.csの関係に対応する
MVVMはもう一段上の概念

122:デフォルトの名無しさん
10/01/21 22:19:38
MVVMやってるとコードビハインドを空にしたくなる病気が・・・

123:デフォルトの名無しさん
10/01/21 22:31:50
コードビハインドはMVVM的にはViewの一部だからな
MVVMでいうビューとロジックの分離と,一般にWPFでいうビューとロジックの分離は意味が違う

124:デフォルトの名無しさん
10/01/21 22:33:15
Xって…

125:デフォルトの名無しさん
10/01/21 22:39:13
WPFやってるとモデル構築時からもう依存関係プロパテイで実装したくなる

126:デフォルトの名無しさん
10/01/22 00:05:09
横長のグラフの一部をスライダーの動きにあわせて表示させるアプリをつくってみたんですが、
いくつか表示させるととても遅くなります

ImageコントロールにDrawContext使って描画することできそうだと思って
ImageのSourceにDrawingImageいれて、そのDrawingにDrawingGroupいれて、
Sliderが動くたびにDrawingGroupからDrawingContext取得して、DrawDrawingやDrawLineで描画してます

さて、もっとキビキビ動くアプリにするためにはどうしたらいいでしょう?

127:デフォルトの名無しさん
10/01/22 00:08:01
まずは認識を改めようか
「DrawingContextは遅い」

128:デフォルトの名無しさん
10/01/22 00:17:42
orz

どうすればいいですか?
何を使えば早いですか?

129:デフォルトの名無しさん
10/01/22 00:23:41
WriteableBitmapは?

130:デフォルトの名無しさん
10/01/22 00:30:59
自分で点を打っていくんですか・・・くたびれるなぁ

131:デフォルトの名無しさん
10/01/22 00:32:48
RenderTargetBitmap使って適当にキャッシュしたら

132:デフォルトの名無しさん
10/01/22 00:40:59
Bitmapをいっぱいつくるってことなんですかね?
トライしてみます
ありがとう

133:デフォルトの名無しさん
10/01/22 00:59:50
Evernote3.5のクライアントってWPFなんだな

134:デフォルトの名無しさん
10/01/22 01:33:04
>>118
ここぐらいかな。
URLリンク(ufcpp.jp)

残念ながらWPFの解説サイトは非常に少ないのでMSDNのサンプルを見ながら勉強するのが一番いいと思う。
URLリンク(msdn.microsoft.com)

あとは書籍とか。

135:デフォルトの名無しさん
10/01/22 01:35:35
解説より作例を見たいよね

136:デフォルトの名無しさん
10/01/22 09:32:14
miniUML が MVVM の作例的にも非常に良く出来ているって聞いたぞ。
まだソース読んでないけど。

URLリンク(www.codeplex.com)

137:デフォルトの名無しさん
10/01/22 09:34:13
>>136
それ、なにするもの?

138:デフォルトの名無しさん
10/01/22 10:09:07
>>137
URLリンク(journal.mycom.co.jp)

139:デフォルトの名無しさん
10/01/22 10:13:04
>>138
このスレにはやさしい人がいてうれしいな
ありがとう

140:デフォルトの名無しさん
10/01/22 10:45:18
ソースからUML書いてくれるツールないかな

141:デフォルトの名無しさん
10/01/22 13:02:23
>>140
あるよ。
JUDEの後継のastah* は Java/C#/C++のソース/UML間相互変換をサポートしてる。
ただし無料版はどれも不可だけど。

JUDEの時はJava出力に関してはフリー版でも出来たと思ったんだけどなぁ。

142:134
10/01/23 10:08:28
URLが間違っていたので訂正。
× URLリンク(msdn.microsoft.com)
○ URLリンク(msdn.microsoft.com)

143:デフォルトの名無しさん
10/01/23 11:16:31
WPFでバルーンヘルプ出すにはどうしたらいいの?
教えて偉い人。

144:デフォルトの名無しさん
10/01/23 11:36:30
Accordion+Binding+Resize時の4004エラー回避できぬ。
ぬぬぬぬ…。

145:デフォルトの名無しさん
10/01/23 12:13:25
>>143
URLリンク(msdn.microsoft.com)

146:デフォルトの名無しさん
10/01/23 12:14:54
最近MSDNの内部リンク切れまくっていないか?使い辛いっつーか、使い物にならん。

>>143
目的が分からんからどうとも言えんがツールチップかポップアップ使えばいいんじゃないか?
偉くはないが

147:デフォルトの名無しさん
10/01/23 12:43:18
>>145,146
すごい。瞬速で解決。ありがとう偉い人たち!

148:デフォルトの名無しさん
10/01/23 13:04:48
>>146
リンク切れ?例えばどこのこと?

149:デフォルトの名無しさん
10/01/23 13:05:44
サンプルのダウンロードとかそこらじゅう

150:デフォルトの名無しさん
10/01/23 13:18:19
>>149
>>142で訂正したけどサンプルが更新されている場合は「.Net Framework 3.5」の方からダウンロードできる。
あとブラウザをIEに変えるとうまくいくことがあったので試してみて。

151:デフォルトの名無しさん
10/01/23 13:34:10
>>148
WPFの話から脱線してスマン。サンプルが切れているのは元からだが
最近クラス自体の説明へのリンクが切れている所が多くなった気がする。
多すぎてうる覚えだが、PrivateObject関連の構造体の説明あたりとか、
URLリンク(msdn.microsoft.com) のクラス説明へのリンクとか。

152:デフォルトの名無しさん
10/01/23 14:50:23
ライトウェイトにしてるから?

153:デフォルトの名無しさん
10/01/23 14:52:36
>>152
え?

…クラシックだと見れるのね。なんじゃコリャw。
切り替えるとなおるのか、キャッシュ探すよりもずっと楽だ。トン

154:デフォルトの名無しさん
10/01/23 17:28:24
ライトウェイトけっこう適当な作りしてんのなw


155:デフォルトの名無しさん
10/01/23 21:41:58
ItemsSourceにBindしてる時、その中の子のコントロールが自分のItemを知る事は出来ますか?
子のコントロールでBindしてパラメータとして渡したいのです。

156:デフォルトの名無しさん
10/01/23 21:54:06
ん? DataContextじゃダメ?

157:デフォルトの名無しさん
10/01/23 22:11:02
すみません、情報不足でした。
Prism for Silverlight使っててxamlで指定して上げたいのです。

<ItemsControl ItemsSource="{Binding Items}">
  <ItemsControl.ItemTemplate>
    <DataTemplate>
       なんちゃらこうちゃら
       CommandParameter="{Binding 現在のアイテム}"←ここ
    </DataTemplate>
  </ItemsControl.ItemTemplate>
</ItemsControl>


158:デフォルトの名無しさん
10/01/23 22:23:50
Itemsの中の要素に対してバインドしたいんだよね?
「Binding Path=.」か「Binding RelativeSource={RelativeSource Self}, Path=DataContext」でいけない?

159:デフォルトの名無しさん
10/01/23 22:52:04
あれ?もしかしたら違うところで躓いてるかも…。

<ItemsControl ItemsSource="{Binding Items}">
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <Button c:Click.Command="{Binding MyCommand}"  ←このMyCommandはItemsにはなく、DataContextのViewModelにある。
                  c:Click.CommandParameter="{Binding RelativeSource={RelativeSource Self}, Path=DataContext}"/>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
</ItemsControl>

この状態でButtonをクリックするとMyCommand自体が呼ばれません。
ItemsControlの外に置くとうまくBindされてMyCommandは実行されます。
これはおそらくItemsの中にMyCommandがないからだと思われますがうまく"Binding MyCommand"の箇所をViewModelのMyCommandが呼ばれるようにするにはどう設定すればよいのでしょうか?
Binding ../MyCommand←これはだめでした。
Binding this.DataContext.MyCommand←これもだめ。
うーん…。

160:デフォルトの名無しさん
10/01/23 23:40:58
MyCommandはItemsControl.DataContextがもっているが、
CommandParameterに渡すのはItemsControl.items内の要素ってこと?

そんな使い方したことないから実際やったことはないが
 a) ItemsControlにx:"Name=itemContorlName"を指定して
   Command={Binding ElementName=itemContorlName,Path=MyCommand}
 b) Command={Binding RelateveSource={RelativeSource AncestorType={x:Type ItemsControl}}}
のどっちかで解決しないか?

> この状態でButtonをクリックするとMyCommand自体が呼ばれません。
出力ウィンドウをみればバインド失敗は表示されるけど…何か出ていない?

161:デフォルトの名無しさん
10/01/24 00:12:23
//Model
public sealed class Model {
  public string A {get; set;}
}

public sealed class Models : ObservableCollection<Model> {}

//ViewModel
public sealed class ViewModel {
  public ViewModel() {
    this.Items = new Models();
    this.MyCommand = new DelegateCommand<RequestItem>(OnMyCommand);
  }

  public void OnMyCommand(Model item){
   
  }

  public Models Items {get; private set;}

  public ICommand MyCommand {get; private set;}
}

//View
public sealed class View {
  public View() {
    InitializeComponent();
    this.DataContext = new ViewModel();
  }
}

162:デフォルトの名無しさん
10/01/24 00:21:57
上記がMVVMの仕様です。
これで説明しやすくなりました。

この仕様でバインドした時>>159のMyCommandがViewModelにあるMyCommandでバインドされないのです。
Model側に"ICommand MyCommand"のプロパティを持てばバインドされるのですがそれではModelとしてふさわしくないように思えます。

・させたい事
ViewModelのMyCommandを>>159のItemControl内のButtonにバインドさせたい。

URLリンク(msdn.microsoft.com)
(ここも見てみましたが上位?Pathの設定の仕方がわかりませんでした。)

ためしにModel側にMyCommandをもちバインドさせ>>158の方法で"Item"を参照できるか試しましたがOnMyCommandの"Model item"はnullとなってました。

163:デフォルトの名無しさん
10/01/24 00:24:30
>>161の訂正
×this.MyCommand = new DelegateCommand<RequestItem>(OnMyCommand);
○this.MyCommand = new DelegateCommand<Model>(OnMyCommand);

164:デフォルトの名無しさん
10/01/24 00:42:12
.NET4.0のMediaElementでH.264のサポートはないの?
silverlight3では動いたので.NET4.0で験してみたのだけど。

165:デフォルトの名無しさん
10/01/24 01:41:12
>>160
UserControlに名前をつけてa)の方法でDataContextを参照したところうまくいきました。

本当はUserControlに名前をつけるとBlendにて警告が出るのでb)のAncestorTypeを使ったものを採用したかったのですが
SilverlightではSelfとTemplatedParentしか用意されていませんでした…。

166:デフォルトの名無しさん
10/01/24 07:46:15
>>165
これでどうですか?

<Window.Resources>
  <c:CommandReference x:Key="MyCommandReference" Command="{Binding MyCommand}" />
<Window.Resources>

<ItemsControl ItemsSource="{Binding Items}">
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <Button Command="{StaticResource MyCommandReference}"
                  CommandParameter="{Binding}"/>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
</ItemsControl>

うまくいかなかったら実験したProjectをどこぞにうpします。

167:デフォルトの名無しさん
10/01/24 21:05:50
>>166
うまくいきました!
ありがとうございます。

168:デフォルトの名無しさん
10/01/24 21:10:02
WPFの質問スレとか見当たらなかったので、お手数ですが少しよろしいですか?

非リアルタイムの2Dゲーム(ADVに近いものを想像してください)を作るにあたって、
WPFを利用するのは有用でしょうか?
WPF関連の書物は高い&3Dゲームに関する記述しかないのですが、
ざっと確認したイメージ的にはいけそうな気もするんですよね。

有用だというのならば、思い切って専門書買ってみようと思うのですが、
よろしければアドバイス頂けませんか?

169:デフォルトの名無しさん
10/01/24 21:15:09
WPFはオサレなGUI(ボタンや部品がうにゅーっと動くようなの)を作るのには向いているがかなり重たい。
作れなくはないが、ADVなら積極的に採用する理由はあまりないんじゃないか?

170:デフォルトの名無しさん
10/01/24 21:18:44
まあWinFormsのSystem.Drawingで作るよりは遥かに速いし簡単に綺麗なものが作れるよ

171:デフォルトの名無しさん
10/01/24 21:20:35
>>168
URLリンク(www.nicovideo.jp)

172:デフォルトの名無しさん
10/01/24 21:22:32
>>168
2DゲーでADVに近い物ならVC#でも十分可能だけどね

173:デフォルトの名無しさん
10/01/24 23:13:51
んー、やっぱり動かしてみないと判断難しいんだろうか?
かといって図書館にも置いてないしなあ。

>>169
少し説明が難しいのですが、動的に処理すべき場所があまりにも多いんですよね。
するとフォームデザインがどうも役立たずっぽいので、WPFの方が適切ではないかと思ったわけです。
速度はイライラしない程度なら問題はないと考えています。

>>170
それはちょっと朗報です。ありがとうございます。

>>171
うわw これは素直にすごいなあ……
ここまでの処理は求めてませんが、期待持てそうです。

>>172
どうもゲームプログラミングは苦手で、それなのに任されちゃって四苦八苦なんです。
いざ調べてみると想像以上に資料少ないですよね。
市販の書籍なんて、ほとんど画像表示の方法とかに終始してますし。

174:デフォルトの名無しさん
10/01/24 23:26:25
ピクセルシェーダが簡単に使えるのは面白いよな
>>171はやってみると意外と難しくない

175:デフォルトの名無しさん
10/01/24 23:28:21
・・・環境にもよるんだろうけど作るだけなら吉里吉里でも
使えばよかろうに

176:デフォルトの名無しさん
10/01/25 00:02:01
でもADVみたいなのにWPFはありだと思うけどなぁ。
UIかっこよくしてなんぼって感じもするし。

177:デフォルトの名無しさん
10/01/25 00:34:22
>>174
やれるとしても当分先だと思いますが、これは確かに面白そうですよね。
たとえ今回の件にそぐわないとしても、近いうちにWPFには手をつけてみようかなーと思い始めてきました。
数値計算とかばかりやってきた身としては、もう少し普及して間口が広くなってほしいってのも本音ですけどね……

>>175
ADVみたいなものって説明が悪かったですね。
雰囲気としてはそれっぽいものではあるのですが、某レトロゲームのシステムを踏襲+拡張したものなので、
簡易的なものじゃちょっとまかなえないんです。分かりにくくてすみません。

178:デフォルトの名無しさん
10/01/25 02:21:15
WPFと吉里吉里とで作れるゲームの幅は変わらないと思うよ

179:デフォルトの名無しさん
10/01/25 03:55:47
吉里吉里はJavaScriptライクな言語TJS2の実行環境+クラスライブラリといった体裁だから、やろうとおもえば結構がっつり組めるよ

でもWPF製のゲームも見てみたいから頑張れ

180:デフォルトの名無しさん
10/01/25 15:07:56
>>171
こういうの見るとモチベーションが上がるな。
上がって何をするかというと、2chとMSDNを往来することなのだが。

181:デフォルトの名無しさん
10/01/25 15:14:07
こういうのは早いのになんでDrawingContextは遅いの?
もっと早く線描けないの?

182:デフォルトの名無しさん
10/01/25 15:27:21
>>181
処理が違うから?
大量の色情報に対して同じ処理を高速にやってるだけだし
上画像のピクセルのアルファ値を高速に変えればできる処理なんで
GPUのもっとも得意とするところじゃん

DrawingContextで描画するような内容ってピクセルのアルファ値かえるだけのような
話じゃないしね

183:デフォルトの名無しさん
10/01/25 16:27:31
c#でも画像の合成表示ならできたな
ちらつきとか抑える方法はよくわからんけど
サンプルソース居る?

というか配布する際どれを渡せばいいんだろうw
.netのソースって開発環境のパスが埋もれてるとか聞いたけど

184:デフォルトの名無しさん
10/01/25 16:35:33
*.Cs とか *.xaml とかでいいんじゃね?

185:デフォルトの名無しさん
10/01/25 16:44:34
URLリンク(uproda.2ch-library.com)
pass 無し

formにpicturebox x1とbutton x3とtimer x1を貼り付けてイベントハンドラを
割り当ててくれれば動くと思うよ

186:デフォルトの名無しさん
10/01/25 17:19:21
あと最近いじっててこんなのもできた
URLリンク(uproda.2ch-library.com)

FormのPaitイベントでDrawLineにArrowAnchor指定して物なんだけど
別の機能をちょっと足せばグラデーション+AntiAliasで描ける

187:デフォルトの名無しさん
10/01/25 17:27:00
なるほど

188:デフォルトの名無しさん
10/01/25 18:38:03
デバッガでエラーが起きた場所が分からなくてつらい

189:デフォルトの名無しさん
10/01/25 19:47:44
>>185
スレチ

190:デフォルトの名無しさん
10/01/25 20:39:07
遅くなってしまい申し訳ありません。168その他です。
昨日はくだらない質問に対していろいろとありがとうございました。

氷点下の世界を旅して、思い切ってWPFの本を買いに行ってみたのですが、取り扱ってる店が1件もありませんでした……
佐川のお兄さんに運んで貰おうと思います。

>>178,179
吉里吉里ってそこまで高性能だったんですね。
あまり使う機会もありませんし、ハッシュは配列にキャストしてから〜ってのがうざったくて放置してました。認識改めます。



191:デフォルトの名無しさん
10/01/25 23:07:44
むしろWPFを使いこなせてないから同レベルくらいに見えるんだろう
それが悪いというんじゃなく、それくらい習熟するのは時間がかかる

192:デフォルトの名無しさん
10/01/26 00:14:08
ほとんどのノートPCで使われてるSynapticsのタッチパッドドライバがWPFと相性悪いらしく、
ListBoxほか大多数のScrollViewer系のコントロールで
パッドのフチを使ったスクロールができず困っていたのだけど、
今年に入ってSynapticsがScrybeというツールのCTPを公開し
その中に最新のタッチパッドドライバ15.0.0.1が含まれていて、
インストールしたところWPFアプリでもスクロールできるようになった!
URLリンク(www.uscrybe.com)

PCメーカーのサポートページから入手できるタッチパッドドライバは大抵古いバージョンなので
WPFのスクロールで困ってる人はこっちをインストールしてみてくれ
以上チラシの裏でした

193:デフォルトの名無しさん
10/01/26 02:49:31
>>191
つまりWPFのほうがより高度なものが作れるってこと?

194:デフォルトの名無しさん
10/01/26 08:05:08
>>171の例1つとっても、画像使うか既定プリセットしかないきりきりより、
自分でHLSL書けるWPFのほうが高度だよ。サンプラーだって上限まで使えるしね。

ていうか、制御するコードにしてもVSとC#使えるんだから、そこらの簡易言語じゃ
勝負にならんでしょ。覚えることは多いけどね。

195:デフォルトの名無しさん
10/01/26 08:21:32
綺麗なのだけじゃなく、スピード重視のローレベルな描画メソッド充実させてほしいな
そしたらもっと裾野広がるのに

196:デフォルトの名無しさん
10/01/26 09:36:54
どっちにしてもWPF使ってツクールみたいなの作るはめになるんだと思うけどな。
べたがきだと使い回しきかんだろうし。

197:デフォルトの名無しさん
10/01/26 09:49:21
>>196
ツクールを作ってた人が楽になるだけだよね

後はツクールを使ってた人が高度な実装知識無しで組めるようになるので
頑張ってツクールが担当してたエリアまで食い込んでくるかも

windows ≒ IE
XAML ≒ HTML
C# ≒ Javascript

こんな感じじゃない?

198:デフォルトの名無しさん
10/01/26 09:50:21
windows ≒ IE
これより
VM ≒ IE


199:デフォルトの名無しさん
10/01/26 10:14:38
Imageに画像のセンタリングをやめさせる方法はありますか?

200:デフォルトの名無しさん
10/01/26 10:19:40
自己解決
VerticalAlignment, HorizontalAlignment
失礼しました

201:デフォルトの名無しさん
10/01/26 20:42:54
パラメータに複数のエレメントを渡したい時はどのようにすればいいのでしょうか?


<Button CommandParameter="ここで同xaml内にある複数のエレメントを渡したい"/>

202:デフォルトの名無しさん
10/01/26 21:49:28
>>201
こんな感じのデータクラスを作って
public class Hoge {
  public int ID { get; set; }
  public string Data { get; set; }
}

XAMLでHogeのアセンブリを参照
<Window x:Class="WpfApplication1.Window1"
 xmlns:d="clr-namespace:WpfApplication1"

ほいさっさ
<Button ...
 <ButtonBase.Content>Ok</ButtonBase.Content>
 <ButtonBase.CommandParameter>
   <d:Hoge ID="1" Data="AAAAAAAA"></d:Hoge>
 </ButtonBase.CommandParameter>
</Button>


203:デフォルトの名無しさん
10/01/26 21:53:48
>>202
おぉ!これは素晴らしい!
ありがとう!

204:デフォルトの名無しさん
10/01/26 22:47:28
補足、作法にのっとるなら依存関係プロパティ
public class Hoge : DependencyObject {
  public DependencyProperty IDProperty = DependencyProperty.Register("ID", typeof(int), typeof(Hoge));
  public DependencyProperty DataProperty = DependencyProperty.Register("Data", typeof(string), typeof(Hoge));
  public int ID {
    get { return (int)this.GetValue(IDProperty); }
    set { this.SetValue(IDProperty, value); }
  }
  public string Data {
    get { return (string)this.GetValue(DataProperty); }
    set { this.SetValue(DataProperty, value); }
}}
これでBindingが使えるようになる。
<d:Hoge ID="0" Data="{Binding Source=button1, XPath=Content}"/>

205:デフォルトの名無しさん
10/01/26 22:49:49
>>204
おぉぉ、なるほど!
Dependency関係がよくわからなかったけどこういう風に使うのか!
また一つ勉強になしました。
ありがとう!

206:デフォルトの名無しさん
10/01/27 10:21:45
そういえばGyaOがヤフーに行ってから動画配信がSilverLight使ってるんだが
あんなに重いものかね?

プログラム作る上でネットブックをスペックの下限の指標にしてるんだが
動画配信中はその他ウインドウのReDrawすらままならないんだが

207:デフォルトの名無しさん
10/01/27 10:32:39
OSを
書け

208:デフォルトの名無しさん
10/01/27 10:51:43
VisualStudio2008ProSP1(Silverlight3 Tools for VS2008SP1 -JPN導入済、OS:XP)で、
CompositeApplicationGuidance-Oct2009の以下のクイックスタート用ソリューションの
プロジェクトのプロパティや、Resources.resxを開こうとすると、必ずVisualStudioが強制終了します。
(エラーメッセージやダイアログが一切表示されず突然落ちます。)
同じ現象にあった方や対処法をご存知の方、いらっしゃいませんか?

強制終了するソリューション(Desktop only - Open QS)
・Directory Lookup Modularity QuickStart
・View Injection QuickStart

強制終了せずプロジェクトのプロパティを表示できるソリューション
・Commanding QuickStart
・View Discovery QuickStart
・Hello World QuickStart
・Configuration Modularity QuickStart
・Commanding QuickStart


209:デフォルトの名無しさん
10/01/27 11:02:35
>>208です
プロジェクト内にResources.resxがないことが原因のようです。
お騒がせしました。

210:デフォルトの名無しさん
10/01/27 14:29:15
WPFでWindowが閉じられる原因ってどうやったらわかりますか?

WinFormsだとStackTrace使ったりFormClosingEventArgsにCloseReasonが
あったんだけど、WPFでどうやったらいいか分からない

211:デフォルトの名無しさん
10/01/27 14:38:53
URLリンク(social.msdn.microsoft.com)

212:デフォルトの名無しさん
10/01/27 14:51:29
WndProc使うしか無いのか…

ありがと

213:デフォルトの名無しさん
10/01/27 20:47:45
ChildFormのthis.DialogResultはViewに対する操作だからView側で処理して良いのかな?
それともICommand等でバインドしてViewのコントロールをViewModelに渡すのが正しい作法?

214:デフォルトの名無しさん
10/01/27 20:48:27
×ChildForm
○ChildWindow

215:デフォルトの名無しさん
10/01/28 12:04:19
Modelを触らない操作だからViewでOK

216:デフォルトの名無しさん
10/01/28 21:34:09
同一ソリューション内の他のプロジェクトをclr-namespaceを使ってXAML内で参照すると"CLR名前空間が定義されていません"と警告が出ます。
コンパイルOK、実行も何も問題ないのでこの警告をやめさせたいのですが何か方法はありますか?

217:デフォルトの名無しさん
10/01/28 23:37:42
WPFでURLリンク(daisuke-watanabe.com)みたいなローディングの画面は簡単に作れますか?

ってぐぐったらでてきたわ。
おまえらは自作で作れたか?

218:デフォルトの名無しさん
10/01/28 23:41:06
ラスターイメージ使ったら負けだろ
それくらいベクトルで描けよ

219:デフォルトの名無しさん
10/01/29 10:08:13
>>217
WPFでそういうことをやろうとも思わなかったけど
DirectXでやれたようなことがむき出しになってるので
できないことはないだろうな

というかWPF使わなくてもVC#でも可能なレベルだろ
個人的にはそのアニメーションすらCPUパワーの無駄とか
思ってしまう

220:デフォルトの名無しさん
10/01/29 11:21:42
URLリンク(www.dotup.org)
こんなんでいいだろ

221:デフォルトの名無しさん
10/01/30 00:44:46
>>220
わたし女子中学生だけどそれはないわ

222:デフォルトの名無しさん
10/01/30 10:23:14
>>220
あたし女子小学生だけどそれはないね

223:デフォルトの名無しさん
10/01/30 10:26:29
ぼく女子高生だけどそれはない

224:デフォルトの名無しさん
10/01/30 10:43:06
男子相撲部だけどごっつあんです

225:デフォルトの名無しさん
10/01/30 13:20:27
URLリンク(www.dotup.org)
わがままなおっさんたちだな

226:デフォルトの名無しさん
10/02/02 13:45:51
MVVMって流行だけどさ、
例えば、読み込むModelが複雑かつ長大な入れ子構造になっている様なとき、
ViewModelを作るコーディング時間と、実行時のコストって大変なものになると思うけど、
それでも分離しなくてはならないの?

227:デフォルトの名無しさん
10/02/02 14:05:59
>>226
テストによる品質保持にかかるコストがそれらを上回るなら。

228:デフォルトの名無しさん
10/02/02 14:19:23
ModelがINotifyPropertyChangedをしっかり実装してるなら、
そのままか同型のコピーをViewModelやViewに引き回しても問題ない。


229:デフォルトの名無しさん
10/02/02 15:40:50
最近はそれを見越して始めから依存関係プロパティ付けて実装することが多いな・・・

230:デフォルトの名無しさん
10/02/02 22:04:52
WPFはまだ仕事では使ってないけどみんなはどう?

231:デフォルトの名無しさん
10/02/02 22:12:19
当分縁がなさそう。
クライアントアプリを開発する案件がそもそも無いっす。

232:デフォルトの名無しさん
10/02/04 01:28:18
クライアントアプリを開発する人に聞いてるんだと思うよ

233:デフォルトの名無しさん
10/02/04 06:35:44
そういう人が居ないんじゃない?

234:デフォルトの名無しさん
10/02/04 07:04:51
よく”まだ”使ってませんって聞くけどいつになったら使う日が来るんですか?

235:デフォルトの名無しさん
10/02/04 08:21:35
VS2010、.NET4のbetaがとれたくらいか、
VS2010SP1、.NET4.5がでるころ

236:デフォルトの名無しさん
10/02/04 08:24:51
Win2kが根絶されるまでは無理ぽ

237:デフォルトの名無しさん
10/02/04 13:34:40
タブページとかXPで表示するとひどい目に遭うけどね

238:デフォルトの名無しさん
10/02/04 20:00:09
NT6が天下を取る頃

239:デフォルトの名無しさん
10/02/05 01:12:51
楽だから選択権があれば使ってるよ
でも重いから客には嫌われてるみたい

240:デフォルトの名無しさん
10/02/05 02:22:05
directx9が満足に動かないビジネス機じゃ重いかもな

241:デフォルトの名無しさん
10/02/05 07:52:21
・・ということは私を含めみんな趣味レベルでWPFやってるってことか・・・。
主流になってくれとまでは言わんが、日の目を見ることなく自然消滅ということにはならんことを祈る

242:デフォルトの名無しさん
10/02/05 08:45:02
いや、趣味レベルでやってるのはあんただけだとおもうぞw

243:デフォルトの名無しさん
10/02/05 09:12:23
VS2010、Expression Encoder 3、Evernoteとかビジネスアプリの事例も増えてきてる


244:デフォルトの名無しさん
10/02/05 09:33:08
MDXやXNA臭がするのは事実

245:デフォルトの名無しさん
10/02/05 09:38:54
> XNA臭
するするwwww

246:デフォルトの名無しさん
10/02/05 09:42:25
わざわざageて自演ですか?

247:デフォルトの名無しさん
10/02/08 22:32:50
>>228
そこまでやったら、Modelを直接バインドしたいなw

248:デフォルトの名無しさん
10/02/08 22:49:34
エッセンシャルWPFのP324にあるTreeViewとHierarchicalDataTemplateの
例がさっぱり分かんねーーーーー。
Binding Path='.'ってなんぞ。

249:デフォルトの名無しさん
10/02/08 22:58:47
そこにバインドされているDataContext自体。

250:デフォルトの名無しさん
10/02/08 23:01:54
綺麗さよりもスピード重視したWPFがあればいいのに

251:デフォルトの名無しさん
10/02/08 23:02:37
DirectXで直接ゴリゴリやればいいじゃん

252:デフォルトの名無しさん
10/02/08 23:10:06
DirectXわかんない

253:デフォルトの名無しさん
10/02/08 23:14:50
WPFはバインドで動的にリフレクションの黒魔術で
エロイムエッサイムしている時点でどうがんばっても速度は限界があるだsろ。

254:デフォルトの名無しさん
10/02/08 23:17:57
フレームワーク全体としてはともかく描画だけなら速くできるだろ
そこ分離するためにDrawingみたいなちょっと低レベルなレイヤがあるんだから

255:デフォルトの名無しさん
10/02/08 23:35:42
>>247
そこまでやったら、俺のItemを美人Modelに直接バインドしたいなw

256:デフォルトの名無しさん
10/02/09 00:10:06
面白いと思って書いてるんだろうか

257:デフォルトの名無しさん
10/02/09 00:17:26
たくさんレス付いてると思ってわくわくしながらリロードしてるんだろな

258:デフォルトの名無しさん
10/02/09 00:28:51
少しつれた...

259:デフォルトの名無しさん
10/02/09 00:30:59
今時こんなレスでも釣れたって言うのか

260:デフォルトの名無しさん
10/02/09 05:07:34
十分大漁です(´・ω・`)

261:デフォルトの名無しさん
10/02/09 06:08:29
>>249
DataType="{x:Type io:DirectoryInfo}"で指定した型をコンバーターで返しているから、
返ってきたDirectoryInfo[]もHierarchicalDataTemplateの対象になってるってことですか?
IsExpandとかどう処理してんのか謎。

snipet
<UserControl.Resources>
<HierarchicalDataTemplate DataType="{x:Type io:DirectoryInfo}">
<HierarchicalDataTemplate.ItemsSource>
<Binding Path='.'>
<Binding.Converter>
<local:GetFileSystemInfoConveter />
</Binding.Converter>
</Binding>
</HierarchicalDataTemplate.ItemsSource>
<TextBlock Text="{Binding Path=Name}" />
</HierarchicalDataTemplate>
</UserControl.Resources>

<TreeView ItemsSource="{Binding}" />

262:デフォルトの名無しさん
10/02/09 06:58:15
> <HierarchicalDataTemplate DataType="{x:Type io:DirectoryInfo}">
> <HierarchicalDataTemplate.ItemsSource>
> <Binding Path='.'>
型を返しているんじゃなくて、DataType=...は、「この型を表示要素に変換するDataTemplateだよ」と書いているだけ。
リソースに書いてあるデータテンプレートがあれば、明示的にデータテンプレートを書かなかった場合に
その型のインスタンスをバインドしたときに自動的に適用される。

> 返ってきたDirectoryInfo[]もHierarchicalDataTemplateの対象になってるってことですか?
このコンバータはDirectoryInfoから、IEnumerable<DirectoryInfo>に変換するのかな?
ならば、上と同様に型が一致すれば適用される。あとは再帰的に。

263:デフォルトの名無しさん
10/02/09 10:40:42
>>262
後出しになってすいません。
コンバータはreturn ((DirectoryInfo)value).GetDirectories();です。
レスありがとうございます。理解が進みました。

264:デフォルトの名無しさん
10/02/10 00:48:39
VS2010RC出たね
WPFは作る方は楽なんだろうけど
使う方から見ると悪夢だな

265:デフォルトの名無しさん
10/02/10 00:50:17
>>264
そう?

266:デフォルトの名無しさん
10/02/10 10:30:27
VS2010に関して言えばレンダリングにWPF使ってるだけなので
WPFだから特に楽って事もないだろう

267:デフォルトの名無しさん
10/02/10 15:12:52
WPFでフリーソフト作ってるけどWinXPは動作保障外にしてる
間違ってないよね俺

268:デフォルトの名無しさん
10/02/10 15:19:44
>>267
間違ってます

269:デフォルトの名無しさん
10/02/10 15:21:37
フリーソフトで動作保証なんてあるんか?

270:デフォルトの名無しさん
10/02/10 15:24:47
>>269
上手く動かなくても知らんってこと

271:デフォルトの名無しさん
10/02/10 15:46:09
フリーソフトなんだから好きにしたらいいよ

272:デフォルトの名無しさん
10/02/10 19:30:19
XPなんて臭いもん外すだろ…>>267は正しい

273:デフォルトの名無しさん
10/02/10 19:33:19
WPFを使っているとXPとVista/7で細かい部分で挙動が違うことがままあるからなぁ…
XPを保証外ってのは賢明だな。

274:デフォルトの名無しさん
10/02/10 19:36:04
XPは臭いのか

まあそれはいいとして確かにXP->Vistaでかなり変わってるからなあ

275:デフォルトの名無しさん
10/02/10 20:59:02
そろそろ保証外にしてもいいんじゃないの?フリーソフトなら。
仕事だとなかなかそうはいかんかもしれないけど。

276:デフォルトの名無しさん
10/02/10 21:43:12
>>266
VS2010で再変換が使えるようになったのはWPF採用のおかげだと思う。

277:デフォルトの名無しさん
10/02/10 21:54:37
再変換って?

278:デフォルトの名無しさん
10/02/10 21:56:43
え?

279:デフォルトの名無しさん
10/02/10 21:59:35
再変換って言われてもIMEの再変換くらいしか思いつかない

280:デフォルトの名無しさん
10/02/10 22:11:42
違うのか?

281:デフォルトの名無しさん
10/02/10 22:26:36
VS2010で再変換できるのがそんなにうれしいのかなと

282:デフォルトの名無しさん
10/02/12 15:11:04
WPFで、Silverlightアプリをホストできますか?

283:デフォルトの名無しさん
10/02/12 16:43:40
できるよ

284:デフォルトの名無しさん
10/02/12 20:12:47
codeplexにあったな

285:デフォルトの名無しさん
10/02/17 15:39:06
マウスクリックしてPopup表示するのどうすればいいんだ?
最初から表示させとくことしかできないの?

286:デフォルトの名無しさん
10/02/17 15:57:18
tooltipなのかダイアログかはっきり汁

287:デフォルトの名無しさん
10/02/17 16:03:08
Popupクラスだよ
イベントハンドラかいて出来たけど

288:デフォルトの名無しさん
10/02/18 13:05:12
DataGridで右寄せにするにはどうすればいいですか?
あるサイトにあった

<Style x:Key="NumberColumnStyle" TargetType="{x:Type my:DataGridCell}">
<Setter Property="HorizontalAlignment" Value="Right" />
</Style>

をそのまま書くとPropertyDescriptorの値が無効ですといわれてしまいます

289:デフォルトの名無しさん
10/02/18 13:45:39
・・・忘れてください

290:デフォルトの名無しさん
10/02/18 14:30:15
忘れられるもんか

291:デフォルトの名無しさん
10/02/18 17:01:05
あなたのことが忘れられないの///

292:デフォルトの名無しさん
10/02/18 19:15:11
俺が忘れさせてやるよ

293:デフォルトの名無しさん
10/02/18 20:21:05
金属バットで頭をバコーン☆! か

294:デフォルトの名無しさん
10/02/19 05:29:22
URLリンク(msdn.microsoft.com)
ここの解説で、
>この不要なオーバーヘッドを回避するには、
>WPF に対して、イメージをサムネイル サイズにデコードするように要求するか、

これはBitmapSourceを生成する時点で大きさを指定することで、

>サムネイル サイズのイメージを読み込むように要求します。

これはもとから小さいサイズの画像を用意しておくってことでいい?
ImageコントロールのWidth/Heightでの指定は非効率つーことだよね

295:デフォルトの名無しさん
10/02/19 05:35:55
>>294
その辺はメモリやディスクの場所とCPU(GPU)の演算資源とのトレードオフだよ

どの段階でサムネイルを用意するかはソフト次第ってところだけど
たとえば3Dゲームなんかだとミップマップというのがそれっぽい
画像の管理かなあ

296:デフォルトの名無しさん
10/02/20 11:48:58
質問です。

画像読み込み用スレッドにて作成した System.Windows.Media.Imaging.BitmapImage
クラスを、ウィンドウのある元スレッドにて使用したいのですが、
InvalidOperationException が発生し、動作しませんでした。

別のスレッドからWPFエレメントを操作しようとすると、
同様の例外が発生することから多分無理だろうと思っていましたがやはりダメでした。

読み込む画像のサイズが大きくそれなりに数があるので、
できれば読み込みは非同期で行いたいと思っております。

どのような解決方法がございますでしょうか?


297:デフォルトの名無しさん
10/02/20 12:09:35
>>296
BitmapImage読み込み後にFreezeすればスレッド間で共有できる筈

298:デフォルトの名無しさん
10/02/20 12:55:58
>>297
早速調べてみます、ありがとうございます!

299:デフォルトの名無しさん
10/02/20 13:17:10
>>297
無事成功しました。

操作したい場合はCloneで置き換えればよいみたいですね。
ありがとうございました。

300:デフォルトの名無しさん
10/02/20 17:52:46
最近WPF使ってるが、バインディングやらテンプレートのせいで
ちょっと規模が大きくなってくるとコードの見通しが絶望的に悪くなってくる。
せっかくC#なのに・・・

301:デフォルトの名無しさん
10/02/20 17:57:45
そりゃ本来XAMLは人が読み書きするもんじゃないから

302:デフォルトの名無しさん
10/02/20 17:59:44
>>301
じゃ、どーやってつくるんだよ

303:デフォルトの名無しさん
10/02/20 18:01:34
XAMLでプログラムとデザインや設定が綺麗に分離されたのは素晴らしいんだが
WPFの本領を発揮しようとすると途端に至る所で色んな処理を書かなきゃいけなくなって死ぬ

304:デフォルトの名無しさん
10/02/20 18:03:25
XAMLはGridだけで充分

305:デフォルトの名無しさん
10/02/20 18:05:28
>>304
表示も入力もできないよママン

306:デフォルトの名無しさん
10/02/20 18:36:38
XAMLはエディタが全プロパティきっちり書けるようになってからが本領発揮だと思う。
いまはどうしても手で書き足さないとだめだもんな。

Expression Blendは使ったことないからわからない。

307:デフォルトの名無しさん
10/02/23 11:52:03
WPF Toolkit - February 2010 Release

308:デフォルトの名無しさん
10/02/23 11:58:44
>>307
kwsk

309:デフォルトの名無しさん
10/02/23 12:37:08
>>307
うぉ、マジだ…
URLリンク(wpf.codeplex.com)

310:デフォルトの名無しさん
10/02/23 12:38:50
Ratingってなーに?

311:デフォルトの名無しさん
10/02/23 12:48:42
iTun○sのアレ

312:デフォルトの名無しさん
10/02/23 18:08:56
・18歳未満使用禁止になりました
とかだとは流石に思わなかった

313:デフォルトの名無しさん
10/02/28 16:59:57
WPF始めてサンプル作ってみたが、UI外観のカスタマイズやアニメーションがタグ要素だけでできて実行ファイルサイズも小さいんだな
リソースどうなってん?
XAMLがUI要素だけのための超高級言語っぽくて正直とっつきにくいが、日本語解説サイトもっと増えてくれー!
ついでにasp.net使える無料スペースも増えてくりゃれ、ドメインはいらんのです



314:デフォルトの名無しさん
10/03/04 19:53:39
WPFは無くなると思うよ。
もともと.NET FrameworkにGUIアプリ向けのライブラリが混入してること自体が間違いだし、それをSilverlightで是正しようとしてるね。

315:デフォルトの名無しさん
10/03/04 21:22:57
えっ?

316:デフォルトの名無しさん
10/03/04 21:25:15
何それこわい

317:デフォルトの名無しさん
10/03/04 21:27:31
WPFは無くならん

何を勘違いしてるのか知らんが、.NETをはじめとしたMSの言語群は「短期間で高品質な生産」を行うためにある
つまりアイデアが最も重要で、使い方を考えられない人間は価値を見いだせていないだけだ

318:デフォルトの名無しさん
10/03/04 21:37:58
なくならないだろうけど
クライアントアプリはなんかどんどん微妙な立ち位置になってきてる気はするね。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5357日前に更新/192 KB
担当:undef