WPF(XAML, XBAP, .Net ..
[2ch|▼Menu]
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
なくならないだろうけど
クライアントアプリはなんかどんどん微妙な立ち位置になってきてる気はするね。

319:デフォルトの名無しさん
10/03/04 22:09:13
WPFはGridだけ残るよ

320:デフォルトの名無しさん
10/03/04 22:38:42
Silverlightでもクライアントアプリ作れるし、将来的に完全にWPFに置き換わるようになっていくってこと。
WPFにある程度追いついてしまったらSilverlightの方が幅広く活用されるのはは当然です。

Gridありますし。

321:デフォルトの名無しさん
10/03/04 22:54:37
Silverlight も WPF も基本は一緒だもんな。


322:デフォルトの名無しさん
10/03/04 22:56:26
設計は全然違うけどな
Silverlightの勝利はマネージコードの敗北です

323:デフォルトの名無しさん
10/03/04 23:30:53
>>320
>Silverlightでもクライアントアプリ作れるし、将来的に完全にWPFに置き換わるようになっていくってこと。

将来Visual Studioの実装がSilverlightで置き換えられるって? んなアホな。
Visual Studioの軽量版がSilverlightで実装されることはあるかもしれないが、
それは新規需要の開拓であって今のVisual Studioの置き換えでは無かろうよ。

324:デフォルトの名無しさん
10/03/04 23:58:39
Vistaを7で無かったことにするのと同じですよ

325:デフォルトの名無しさん
10/03/05 00:13:44
エッセンシャルの先頭10ページを読めばどうしてWPFが必要か理解できて、そんな寝言など出てこないはずなんだが
キミがそう思うのは自由だがひとには話さないことだな

326:デフォルトの名無しさん
10/03/05 00:26:27
WPFで作られたアプリが起動しなくなった
WPFじゃないアプリじゃこんなことなかったのに

327:デフォルトの名無しさん
10/03/05 01:07:10
釣針垂らすならもうちょっと頑張れよ…

328:デフォルトの名無しさん
10/03/05 07:55:34
>>314
gui用のライブラリが入ってるのが間違いとか、意味分からんわ。
view無しのフレームワークとかありえんだろ。ウェブのDOMも間違いとかいい出しそうだな。


329:デフォルトの名無しさん
10/03/05 08:19:56
>>325
先頭10ページを要約してよ。

→ 自分で買って読め

はいはい

330:デフォルトの名無しさん
10/03/05 10:54:55
そのへんの書籍がよくフリーでpdf公開されてたりするのも知らんのだろうな

331:デフォルトの名無しさん
10/03/05 12:23:09
URLも示さずに何言ってんのこの人。
エッセンシャルは公開*されてません*

332:デフォルトの名無しさん
10/03/05 12:37:34
SilverlightはUI周りの実装がなあ
さすがにXAMLパーサまでアンマネージコードで実装するのはどうかと

333:デフォルトの名無しさん
10/03/05 12:37:56
立ち読みでもしてこいよ。おれはおまえのママじゃないんだから

334:デフォルトの名無しさん
10/03/05 18:54:28
>>333
実は読んだことないでしょ?w

335:デフォルトの名無しさん
10/03/05 22:44:45
WPFやってるやつならみんな持ってるよ。これしかまともな本がないからな。君はもってないのか? 笑う。

336:デフォルトの名無しさん
10/03/05 23:21:14
マトモとは思えないが、相対的にはマトモだなw

337:デフォルトの名無しさん
10/03/05 23:33:56
WPF詳しい奴本書いて出版しろよ
今ならベストセラー狙える

338:デフォルトの名無しさん
10/03/06 00:20:54
>>335
俺もってないけど?
普通はMSDNだのブログだので充分だと思うが。

339:デフォルトの名無しさん
10/03/06 01:07:31
WPF本は2年ぐらい前にここで教えてもらったAdam NathanのWPF UnleashedとエッセンシャルWPFしか読んでない。
最近はネットの情報も増えてきて随分過ごしやすくなったね。

340:デフォルトの名無しさん
10/03/06 03:55:02
本を所持してるだけでどんだけ高圧的になれるんだw

341:デフォルトの名無しさん
10/03/06 09:50:06
>>339
その本正直ゴミみたいな本だよね

342:デフォルトの名無しさん
10/03/06 10:39:55
>>338
ほぼそれで大丈夫だよ。

343:デフォルトの名無しさん
10/03/06 12:23:51
Programing WPFは良かったよ。Pro WPFはどうなんだろ。
日本語の本では、新しいのが出ないね。

344:デフォルトの名無しさん
10/03/06 13:11:01
WPF流行ってないからしかたない。
今使ってる層はWebから情報得たり英語ソースあたったりする層ぐらいじゃないの?



345:デフォルトの名無しさん
10/03/06 13:38:29
すみません、質問です。
これからwpf入門をしようと思い、サイトなどを見ているのですが、
以下のサイトの記述は誤りであるという解釈でよろしいのでしょうか。

URLリンク(www.atmarkit.co.jp)
> Silverlightはラインタイムのサイズを4MBytes台に抑えるという
> 至上命令があったため、WPFと比べると機能が削られているという
> 違いが存在する。

「ラインタイム」ではなく「ランタイム」だと思うのですが、
別にそういう用語があるのか気になってます。

346:デフォルトの名無しさん
10/03/06 13:44:41
ランタイムで合ってると思うよ。

347:デフォルトの名無しさん
10/03/06 13:45:53
ないです

348:デフォルトの名無しさん
10/03/06 13:47:56
>>346
ありがとうございます。

349:デフォルトの名無しさん
10/03/07 00:05:23
SilverlightのUIフレームワークはWPFに似せた全くの別物なので
WPFと比べて削られてるって言うのはちょっと不適切だと思う
.NET Frameworkと比べてSilverlightは機能が削られているというならわかるけど


350:デフォルトの名無しさん
10/03/07 11:54:17
Expressionの開発に携わってる人が、SilverlightはWPFのサブセットだって言ってたよ。

351:デフォルトの名無しさん
10/03/07 17:29:50
サブセットなめんな

352:デフォルトの名無しさん
10/03/07 18:48:56
silverlightがサブセットといってもWPFが完全な上位互換でも無いんだよね。
silverlightにあってWPFに無い機能もあって移植のときに困る。

353:デフォルトの名無しさん
10/03/07 18:52:27
じゃあどちらか無くした方がいいな

354:デフォルトの名無しさん
10/03/07 19:29:00
UI部分に関してはAPIは似てるけど実装が全く違うんだよな
他のところはだいたいそのまま.NETのコードを拝借しただけなんだけど

355:デフォルトの名無しさん
10/03/08 22:09:33
ようするにバカは使うなってことだ
ユトリは大人しくオナニーでもしてろ


356:デフォルトの名無しさん
10/03/09 11:32:09
>>344
結局は面倒くさいからな
マイクロソフトのこの手の製品の癖として、何でも出来るようにさせるがために、全体の簡便さや明快さを犠牲にする。

作るソフトの特殊度・高機能度   低  中  高
要する労力               30 50 70 

これを、                 15 30 100
くらいの設計思想にしたっていいように思うがそうはしない。

ソフト制作の環境が昔と様々に違っている上、「また数年も経てば新プログラミング製品を出すんだろ?だとしたら過渡期のものをいちいち細かく研究してられるか。」感も強く、流行らないのも仕方ない。

357:デフォルトの名無しさん
10/03/09 11:48:54
でもおまえらもこれくらい10分もあれば作れるだろ
URLリンク(www.dotup.org)

358:デフォルトの名無しさん
10/03/09 12:00:40
>>537
WPF と全然関係なくね?

359:デフォルトの名無しさん
10/03/09 12:10:24
おまえらのいうWPFってGUI記述マークアップのことじゃないのか

360:デフォルトの名無しさん
10/03/09 13:29:06
MS製の割には無駄に複雑な感があるよね
Javaみたい

361:デフォルトの名無しさん
10/03/09 15:51:45
むしろMSの代名詞みたいなもんじゃないか>無駄に複雑

362:デフォルトの名無しさん
10/03/09 16:01:49
OLE/COM時代を通っている者ならば問題ない

363:デフォルトの名無しさん
10/03/09 16:37:36
無駄に複雑な方が色々金になるし。
あんまり簡単すぎるとうちらの仕事もなくなっちゃうよorz

364:デフォルトの名無しさん
10/03/09 16:42:22
依存プロパティ作るのめんどくさいからバインディングとかあまり使ってない

365:デフォルトの名無しさん
10/03/09 17:01:04
バインディング使わないとか勿体無すぎる

366:デフォルトの名無しさん
10/03/09 17:12:59
バインディングは使っても依存プロパティ自体あまり使わないと思うの

367:デフォルトの名無しさん
10/03/09 17:21:53
プロパティ型、プロパティ名、定義している型、初期値の4つを指定するだけじゃん
自動実装のプロパティと比べて2つも増えているのが面倒とか?

368:デフォルトの名無しさん
10/03/09 17:24:33
あとおまけでCLRラッパーも

369:デフォルトの名無しさん
10/03/09 17:57:11
依存関係プロパティは専用の構文とか用意すべきだったと思う。
正直くどい。

370:デフォルトの名無しさん
10/03/09 18:42:37
たしかにくどいけどC#全般がそういう言語だと思うことにした。
Visual Studio使っていれば、propdp[Tab][Tab]と叩くいて雛形を埋めるだけで出来上がるし。

371:デフォルトの名無しさん
10/03/09 18:47:50
スニペット必須なぐらいならいっそ #define みたいな仕掛け用意しときゃいいのにね。
不毛すぎる。

372:デフォルトの名無しさん
10/03/09 20:17:36
ツールヒントの表示の仕方も分からない

373:デフォルトの名無しさん
10/03/10 13:13:42
WPFはなくなるの?




答えはもちろんNO!

374:デフォルトの名無しさん
10/03/10 15:24:48
まあさすがに30年ぐらいしたらなくなってるとは思う。

375:デフォルトの名無しさん
10/03/10 15:30:32
COBOLは残ったんだよな・・・そう言われつつ

376:デフォルトの名無しさん
10/03/10 17:37:34
無くなると分かっている技術を習得しなければならないこともあるということさ

377:デフォルトの名無しさん
10/03/10 17:55:12
というよりSE/PGは(それに限らずどんな職業も)そういったくだらないその場限りの
バッドノウハウをお客さんのかわりに網羅する仕事だもんな。

Oracle のあるバージョン特有のチューニング方法とかどう考えても10年後20年後に役立つ知識じゃない。

378:デフォルトの名無しさん
10/03/11 00:30:28
1日役に立てば十分だ

379:デフォルトの名無しさん
10/03/11 01:17:27
WPF は Silverlight 4 の INotifyDataErrorInfo みたいにコントロールに非同期でエラーを伝える方法ってないのかな?
DataGrid で行の確定ごとにサーバーに問い合わせて、エラーを表示したいんだけど良い方法が分からない。

380:379
10/03/11 22:13:56
自己解決した。
IDataErrorInfo と INotifyPropertyChanged を実装してエラー更新後に PropertyChanged 呼んでやれば良いだけだった。
PropertyChanged でエラー情報も拾ってくれるんだね。

381:デフォルトの名無しさん
10/03/12 20:55:17
VisualStudio2008 SP1 VC# 2008
WPF3.5 で開発しています。

[DllImport("user32.dll")]
public static extern bool SetProp(IntPtr hWnd, string lpString, IntPtr hData);

this.Loaded += new RoutedEventHandler(
delegate(object sender, RoutedEventArgs arg) {
var source = new WindowInteropHelper(this);

SetProp(source.Handle,
"MicrosoftTabletPenServiceProperty", new IntPtr(0x01000000));
}
);

によってマルチタッチを有効にし(これはMSDNのサンプルからも得られる知識です)、
Stylusイベントによってマルチタッチアプリを開発しています。
参考になるサイトは以下です。
URLリンク(blog.andreweichacker.com)

MSDNのサンプル、↑のブログ、その他海外のサイト、どこを見ても
StylusDown, Up によってタッチの有無を判定していますが、
StylusEnter, Leave を用いたものを見たことがありません。

試しに Enter, Leave のイベントを記述し、対応する関数内で
(たとえば)listBox1.Items.Insert(0, "Stylus Enter" + e.StylusDevice.ID);
などと記述すると、Enter, Leave は問題なく取得できています。

が、1本目の指で StylusEnter し、2本目の指をウィンドウ内にタッチすると
Enter, Leave が暴走します。

(※すみません、次のレスに続きます)


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

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