5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2010/12/05(日) 22:08:33
あたらしいユーザーインターフェースシステム、Windows Presentation Frameworkについて語るスレ。
.NET4 もリリースされて盛り上がってまいりますた。

Visual Studio 2010
http://www.microsoft.com/japan/msdn/vstudio/
Microsoft .NET Framework 4 (Web インストーラー)
http://www.microsoft.com/downloads/details.aspx?familyid=9CFB2D51-5FF4-4491-B0E5-B386F32C0992&displaylang=ja
Microsoft .NET Framework 4 (スタンドアロンインストーラー)
http://www.microsoft.com/downloads/details.aspx?familyid=0A391ABD-25C1-4FC0-919F-B21F31AB88B7&displaylang=ja

前スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part7
http://hibari.2ch.net/test/read.cgi/tech/1282479113/

関連スレ
Microsoft Silverlight その7
http://hibari.2ch.net/test/read.cgi/tech/1288613056/

過去スレ
Part6 http://hibari.2ch.net/test/read.cgi/tech/1274423236/
Part5 http://pc12.2ch.net/test/read.cgi/tech/1261879110/
Part4 http://pc12.2ch.net/test/read.cgi/tech/1245384489/
Part3 http://pc12.2ch.net/test/read.cgi/tech/1231506876/
Part2 http://pc11.2ch.net/test/read.cgi/tech/1211453941/
Part1 http://pc11.2ch.net/test/read.cgi/tech/1162950198/

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/

2 :デフォルトの名無しさん:2010/12/05(日) 23:31:23
もしかして2?
  (\ (\
  / ノ / ノ
 / 丿 / 丿
_( \/ 〈
= \/ ̄⌒ヽ―彡彡ミ丶
=≡ \  / /彡彡ミ|
   `-<_(_二フつノ


3 :デフォルトの名無しさん:2010/12/05(日) 23:33:14
>>2
WPFでそのキャラ使ったゲーム作って

4 :デフォルトの名無しさん:2010/12/05(日) 23:38:42
もしかしてこれのこと?

  (\ (\
  / ノ / ノ
 / 丿 / 丿
_( \/ 〈
= \/ ̄⌒ヽ―彡彡ミ丶
=≡ \  / /彡彡ミ|
   `-<_(_二フつノ

 ̄//|ロ ニニ `/_/_
/ヽ |  / / / /  ̄


5 :デフォルトの名無しさん:2010/12/05(日) 23:39:18
───┐
□□□│ ./) rt   ひっどーい
□□□│〈〈__ノノ
□□□│ ヽ〉 ̄/`‐-巛(       ./) rt    ひっどーい
□□□│  `ー<_ァ_巡)      〈〈__ノノ
□□□│                ヽ〉 ̄/`‐-巛(
□□□│                 `ー<_ァ_巡)
□□□│
□□□│          ./) rt   ひっどーい
□□□│         〈〈__ノノ
□□□│          ヽ〉 ̄/`‐-巛(
□□□│           `ー<_ァ_巡)
□□□│
□□□│
□□□│                       ./) rt   ひっどーい
□□□│                       〈〈__ノノ
□□□│                        ヽ〉 ̄/`‐-巛(
□□□│                         `ー<_ァ_巡)
□□□│
□□□│
□□□│
 ._.  │
 | | |  │
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

6 :デフォルトの名無しさん:2010/12/05(日) 23:40:16
携帯電話も一緒に飛ばした方が良くね?

7 :デフォルトの名無しさん:2010/12/06(月) 01:08:44
添付プロパティのおかげで既存のクラスもあたかもプロパティが追加されたみたいにできるんだな。

Button Grid.Row="3"
のように、あたかもButtonがGrid.Rowというプロパティを持っているように見せかけることができる。

8 :デフォルトの名無しさん:2010/12/06(月) 01:27:20
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所

9 :デフォルトの名無しさん:2010/12/06(月) 04:32:14
個人でオサレなGUIを作る必要なんてないからな
大抵はCUIで十分だし
となると、Pythonってことになる

10 :デフォルトの名無しさん:2010/12/06(月) 04:35:24
>>9
まだオサレ(ry

11 :デフォルトの名無しさん:2010/12/06(月) 14:03:04
ListViewの背景色が変えられない
助けて

12 :デフォルトの名無しさん:2010/12/06(月) 14:21:56
background="gray"

13 :デフォルトの名無しさん:2010/12/06(月) 14:24:27
選択されたときだけ変えたいのでStyleの中でそれやっても変わらないの

14 :デフォルトの名無しさん:2010/12/06(月) 14:26:03
トリーガ使えば?

15 :デフォルトの名無しさん:2010/12/06(月) 14:27:13
>>9
どうせ作るなら配布したいじゃん。
他の人に使ってもらうならGUIのほうがいいじゃん。じゃん

16 :デフォルトの名無しさん:2010/12/06(月) 14:30:17
配布するならframeworkインストールしないとだめじゃないか
しかもそれいれてもWindowsユーザーしか使えない

pythonはインストールすれば誰でも使えるし
自分で書き換えたりもできる

17 :デフォルトの名無しさん:2010/12/06(月) 14:42:01
>配布するならframeworkインストールしないとだめじゃないか
>pythonはインストールすれば

頭大丈夫ですか?

18 :デフォルトの名無しさん:2010/12/06(月) 14:45:11
>>17
ひとの心配するより自分の心配した方がいいぞ

19 :デフォルトの名無しさん:2010/12/06(月) 14:47:24
フレームワーク必要な言語なんか企業で使うことしか眼中にないものだけだしな。
会社勤めしてればいやでも使うだろうし、そうでないなら学ぶ手がかりすらない。
ソフト配布したいんなら割り切ってそれ用の言語に集中した方がいいね。

20 :デフォルトの名無しさん:2010/12/06(月) 14:54:32
<Style TargetType='{x:Type ListViewItem}'>
<Style.Triggers>
<MultiTrigger>
  <MultiTrigger.Conditions>
    <Condition Property="IsSelected" Value="true" />
    <Condition Property="Selector.IsSelectionActive" Value="true" />
  </MultiTrigger.Conditions>
  <Setter Property="Foreground" Value="Red" />
  <Setter Property="Background" Value="Orange" />
</MultiTrigger>
</Style.Triggers>
</Style>

これでForegroundだけ変わって、Backgroundが変わらないんですが・・・


21 :デフォルトの名無しさん:2010/12/06(月) 15:10:59
方法 : ListView の行の背景色を変更する

22 :デフォルトの名無しさん:2010/12/06(月) 15:38:11
>>20
それみんな詰まるとこだね
検索したらすぐ見つかるはずだが
どうやってするのかもう忘れたけどw

PanelTemplete使うんだあったかな

23 :デフォルトの名無しさん:2010/12/06(月) 16:23:28
>>19
現実が見えていない人が妄想で語っているようだ。

http://www.statowl.com/microsoft_dotnet.php?interval=month
Vista以降なら最初から入ってて、.NET3.0以上に限定したとしても8割に入れられている。

.NETで作ればほとんどの人はインストールしなくていい。
インストーラーにしておけば例え入っていなくても自動で入れてくれる。
セキュリティFix等の更新があったらWindows Updateで自動的に配布されるから後の心配もしなくていい。

Pythonが悪いとは思わないけど、配布考えると話にならないよね。

24 :デフォルトの名無しさん:2010/12/06(月) 16:37:54
Pythonはexeにして配布出来るから便利

25 :デフォルトの名無しさん:2010/12/06(月) 16:49:22
上っ面だけ舐めて語ってるような奴ほど優劣決めたがるんだよな
プラットフォームの優劣なんか対象環境や要件でいくらでも変わる
不毛な事に時間割いてるなら、選択肢を増やすために手を広げたほうが利口


26 :デフォルトの名無しさん:2010/12/06(月) 16:56:01
ほっとけよ

27 :デフォルトの名無しさん:2010/12/06(月) 17:01:00
XAML

28 :デフォルトの名無しさん:2010/12/06(月) 17:24:56
>>23
現実が見えていないのはお前だよ
vista以降のOSを使っているのは2割

pythonならmacでも使える

3Dインターフェースを作る場合じゃない限りWPFは必要なし
IDEも重いし、開発にも時間がかかる

お手軽ツールならpython rubyで決まりだね

29 :デフォルトの名無しさん:2010/12/06(月) 17:38:29
ListViewはいろいろダメすぎる。
DataGridをListView風に使った方が早いよ。

30 :デフォルトの名無しさん:2010/12/06(月) 19:07:33
Pythonは好きだがGUIアプリ作るならどう考えてもWPFの方が早いし良いものができる

31 :デフォルトの名無しさん:2010/12/06(月) 19:26:20
GUIを作る必要性がない
特にWindowsユーザーはそうだろう

32 :デフォルトの名無しさん:2010/12/06(月) 19:46:37
ちょっとしたスクリプトならpython/rubyが速いというのは分かるけど
GUIが絡んだとたんにC#の圧勝になると思うんだけど

33 :デフォルトの名無しさん:2010/12/06(月) 19:49:10
詳しくない人に質問されてCUIツール紹介したら、
理解しようという努力すらしてもらえなかった経験くらい誰にでもあると思うけど

34 :デフォルトの名無しさん:2010/12/06(月) 20:07:34
何?Python厨装った荒らし?


35 :デフォルトの名無しさん:2010/12/06(月) 20:13:11
>>29
ListViewはItemTemplate使うの前提だもん
デフォルトの状態で行の背景色を変えたいというような要望が出ること自体が間違ってるんだよ

36 :デフォルトの名無しさん:2010/12/06(月) 21:00:17
Trigger使ってるのがデフォルト状態?

37 :デフォルトの名無しさん:2010/12/06(月) 21:00:47
pythonが入ってるPCが2割もあるの?

38 :デフォルトの名無しさん:2010/12/06(月) 21:02:09
ぶっちゃけ開発者以外に入れてる人いなくね

39 :デフォルトの名無しさん:2010/12/06(月) 21:03:07
GridView使うなら初めからDataGrid使えというのは同意
投げ輪すらできんしね

40 :デフォルトの名無しさん:2010/12/06(月) 21:06:00
System::windows::form::timer で一秒ごとにlabel->textを更新していますが(要は時計です)
最小化から復帰するとlabel->textが更新されなくなります、何故でしょう。 ってここで質問してもいい?

41 :デフォルトの名無しさん:2010/12/06(月) 21:06:28
>>40
こっちですよ

ふらっとC#,C♯,C#(初心者用) Part66
http://hibari.2ch.net/test/read.cgi/tech/1290854247/

42 :デフォルトの名無しさん:2010/12/06(月) 21:06:56
>>33
ああ良くあるね
なんでだろうね
黒い画面が怖いのかな

43 :デフォルトの名無しさん:2010/12/06(月) 21:07:16
>>41
くだすれC++/CLI(初心者用)part2
http://hibari.2ch.net/test/read.cgi/tech/1268613679/
こっちじゃね?

44 :デフォルトの名無しさん:2010/12/06(月) 21:08:19
>>41

スイマセンありがとう。

>>43

どうもどうも、行ってきます。

45 :デフォルトの名無しさん:2010/12/06(月) 21:08:40
LinuxとMacの全台にPython入ってても5.5%
プログラミングしてる奴がWindowsユーザーの15%もいるかなぁ
絶対にないだろw

46 :デフォルトの名無しさん:2010/12/06(月) 21:13:21
ちょっと大層なアプリケーションだと拡張機能用のスクリプトとしてPythonが組み込まれていることはあるね
プログラミングしない人でPythonを単体で入れてるのは見たことないな

47 :デフォルトの名無しさん:2010/12/06(月) 21:19:00
スレ違いの話を何時までもやってる人って頭湧いているの?

48 :デフォルトの名無しさん:2010/12/06(月) 22:13:17
ListView捨ててDataGrid使うことにしました

49 :デフォルトの名無しさん:2010/12/06(月) 22:46:50
>>47
粘着アンチがついて一人前。WPFを気に食わない人達が無視できないほどまで大きく成長したって証拠だな。
WPFも盛り上がってまいりますた。

50 :デフォルトの名無しさん:2010/12/06(月) 22:56:11
Silverlight5がやばいぞ
パッケージソフトでもない限り、あえてWPFを使う理由がほぼ無くなる
本気でビジネスアプリケーションは全部持っていく気みたい

51 :デフォルトの名無しさん:2010/12/06(月) 23:20:36
まあ、「※ただし1年後です」になるけどもね、Silverlight 5。

最終的に、Silverlight とクライアント .NET の差はなくなる方向で進化するとは思うけど、
まだまだ先の話だなぁ。

52 :デフォルトの名無しさん:2010/12/06(月) 23:21:59
>50
え?Windows用のSLって継続してるの?てっきり電話だけになったかと思ったわ

53 :デフォルトの名無しさん:2010/12/06(月) 23:23:05
地震

54 :デフォルトの名無しさん:2010/12/06(月) 23:38:57
>>52
クロスプラットフォームはほどほどにしてビジネスアプリに特化
それが誤解されて嘘が出回った

55 :デフォルトの名無しさん:2010/12/07(火) 07:05:51
Rubyなら始めからMacに入ってる

56 :デフォルトの名無しさん:2010/12/07(火) 08:33:00
お前らなんで喧嘩してるんだ?
Python/Ruby処理系で一番インストールされてるのって、ぶっちゃけ.NET4やSilverlightに入ってるIronPython/IronRubyだよね。
一応WPFも使える。
軽量言語は敵なんかじゃなくて.NETの世界に共存する仲間だろ。
もっとみんなDLRで遊ぼうぜ

>>37
.NET4はWindowsの26%に入ってる。で、これにMacOSXの11%が加わるわけよ。
Silverlightにいたっては全OSの55%に達する。(Google,Yahoo,Bing...にアクセスしたPC調べ)

57 :デフォルトの名無しさん:2010/12/07(火) 09:00:22
.netにrubyやpythonは入ってねーよ
DLRのコア中のコアのほんの一部だけ吸収されて
後は頓挫した格好でコミュニティに移管
元々コミュニティに任せるべき性質のプロジェクトだったしな

58 :デフォルトの名無しさん:2010/12/07(火) 09:00:56
IronPython で Django とか
IronRuby on Rails とか
もう何でもありなの?

59 :デフォルトの名無しさん:2010/12/07(火) 10:46:37
WinFormsではListViewのサブアイテムが編集できないんだった。久々すぎて忘れてた。
この程度のことでコーディングするのめんどくせぇ…WPFだったら数分で終わる簡単な作業なのに…

60 :デフォルトの名無しさん:2010/12/07(火) 12:01:42
ListView.Items[i].Subitems[j].Text = "foo";

じゃ駄目なの?

61 :デフォルトの名無しさん:2010/12/07(火) 12:36:24
>>60
LabelEdit=trueのラベル列みたいに利用者が直接書き換えれるようにしたいんよ。
CodeProjectに丁度いいのがあった。
http://www.codeproject.com/KB/list/ListViewCellEditors.aspx

WPFに慣れるとWinForms使うのが苦行でしかないわ…。ちょっと使い勝手を改善したいだけなのに

62 :デフォルトの名無しさん:2010/12/07(火) 13:38:10
あ,そういうことでしたか.失礼.

63 :デフォルトの名無しさん:2010/12/07(火) 14:09:55
WPFや銀光は、開発元(マイクロソフト)がド派手な画面構成で紹介したから
業務開発者からは、「派手な画面のアプリケーションを作るためのモノ」と勘違いされている。

64 :デフォルトの名無しさん:2010/12/07(火) 14:24:36
実際そうだし

65 :デフォルトの名無しさん:2010/12/07(火) 14:30:37
WPFはWinFormsに対してCとC++のような関係だったら流行ってたと思う。
何を言ってるかわからねーと思うが俺もわからない。
XPとVistaでもあったがガラリと変わるとなかなか人は付いてこない模様。
そろそろ学習したほうがいい。

66 :デフォルトの名無しさん:2010/12/07(火) 16:48:46
革新的なものほど末端に行き渡るまで時間がかかる。
未だに勘違いしてる>>64みたいなのでさえ、スレを見に来るほど流行ってきた。

新しいことを学ぼうとせず逃げてるような人は、そろそろ(WPFを)学習したほうがいい。

67 :デフォルトの名無しさん:2010/12/07(火) 17:21:47
重すぎて使う意味が無い

68 :デフォルトの名無しさん:2010/12/07(火) 17:29:25
WPFが重すぎとかどんだけ古いパソコン使ってるんだか。

69 :デフォルトの名無しさん:2010/12/07(火) 18:09:30
つまり最新式のPCじゃないとWPFはできないってことですね
つまり糞

70 :デフォルトの名無しさん:2010/12/07(火) 18:12:07
最新っていうかvistaや7をメインターゲットにしたような感じだからなあ
2008まではxpも視野に・・・と



71 :デフォルトの名無しさん:2010/12/07(火) 18:19:37
一般人はオタみたいな毎年買い換えるなんてしないですからね
壊れるまで使うのが普通
5年前のPCを使っている人がどれだけいると思ってるのか
そういう人達に、お前らみたいな糞PCじゃWPF様は使えないんだよって
横柄な態度をしているのはどうかと思いますね

料理屋で食べ方を注意してくる店員がいたらどうでしょうか?
みすぼらしい格好で入ってきた客にお前に俺の飯は食わせない
なんていう店主がいたらどうでしょうか?

ソフトはあくまで道具、使われる立場にあるんですよ
使えないならゴミと一緒

72 :デフォルトの名無しさん:2010/12/07(火) 18:20:54
え?10年前のPCでも動くんだけど?
古いPCっていうのは1900年代のPCの事なんだけどなに勘違いしてるの?

73 :デフォルトの名無しさん:2010/12/07(火) 18:20:55
またアンチWPFの荒らしが遊びにきたのか。

74 :デフォルトの名無しさん:2010/12/07(火) 18:21:42
5年前のPCは古くねぇだろjk

75 :デフォルトの名無しさん:2010/12/07(火) 18:33:20
ぎにゃー
イベントとコマンド混合してた。
イベントってあんまり使わない?

76 :デフォルトの名無しさん:2010/12/07(火) 18:33:56
そもそもここに来る奴は基本開発者じゃないの?プロアマ問わず。

開発やるくせにWPFすらまともに動かないPCなの?

77 :デフォルトの名無しさん:2010/12/07(火) 18:34:11
そんなことはない。
むしろコマンドが使わない。

78 :デフォルトの名無しさん:2010/12/07(火) 18:36:37
動く動かないのはなしなんてしていませんが?
重いかどうかだよ
最新のPCですらこのIDEではデバッグ作業でイライラさせられる

79 :デフォルトの名無しさん:2010/12/07(火) 18:38:03
>>76
つまり配布する気がないならRubyでいいよね?
まさか個人で使うのにWPFでオサレGUIなんて非効率的なことしてないよね?

80 :デフォルトの名無しさん:2010/12/07(火) 18:44:10
atom上の仮想環境ですらサクサクなのに重いとかいってる奴はどんな環境なんだ?

81 :デフォルトの名無しさん:2010/12/07(火) 18:56:39
サクサクというなら1万行あるdatagridのスクロールバーを移動したときの
fpsを教えてよ

うちのPCは2年前にFPSゲー用に買ったものだが
10行のdatagridでさえfpsは一桁だがな
こんなもっさりしてるの使いたくない

82 :デフォルトの名無しさん:2010/12/07(火) 18:57:53
メモ帳ぐらい軽くないと話にならん

83 :デフォルトの名無しさん:2010/12/07(火) 19:03:45
使いたくなきゃ使わなければいいだろ ('A`) どっかいけ

84 :デフォルトの名無しさん:2010/12/07(火) 19:03:59
俺はメモ帳くらい早い
Win 7クアッドコアにHD 5770で
俺もXP使ってた時は本当に遅くてフォントもおかしいしくそだと思ってた
しかし、今はMSはもうロースペック相手にしてないんだと分かった

85 :デフォルトの名無しさん:2010/12/07(火) 19:05:54
1万行のDataGrid糞ワロタwwwwwwww
設計がマジでお粗末すぎwwwwwwwwww
VB使いたて3日レベルwwwwwwwww

86 :デフォルトの名無しさん:2010/12/07(火) 19:08:12
1万行のdatagirid…(゚A゚;)ゴクリ
必要のない同期通信するアプリを超えてるな…

87 :デフォルトの名無しさん:2010/12/07(火) 19:09:27
>>83
コテハン君の頭は、こんなクソ重いWPFプログラマが増えることは、ユーザーが迷惑しプログラミング業界の衰退につながるから
なんとしてもWPFのクソさをアピールしなければならないらしい。
言ってわかるやつじゃないから君も相手にしないほうがいいよ。

88 :デフォルトの名無しさん:2010/12/07(火) 19:12:49
>>84
そんなPCもっているやつが世間でどれだけいると思っているんだよ

89 :デフォルトの名無しさん:2010/12/07(火) 19:14:13
そういえばDataGridって代替で何か無いの?

90 :デフォルトの名無しさん:2010/12/07(火) 19:14:32
うちのPCは2年前にFPSゲー用に買ったものだが
10行のdatagridでさえfpsは一桁だがな

これのどこが軽いんだ?

91 :デフォルトの名無しさん:2010/12/07(火) 19:16:30
列が10万行とかいう落ちはもう見飽きたから

92 :デフォルトの名無しさん:2010/12/07(火) 19:16:44
>>90
流石にそれは別の原因

93 :デフォルトの名無しさん:2010/12/07(火) 19:18:23
じゃあその原因を突き止めろ

94 :デフォルトの名無しさん:2010/12/07(火) 19:19:39
XPだとWPFは使い物にならないよ
80%いるXPユーザーがまともに使えない時点で糞

95 :デフォルトの名無しさん:2010/12/07(火) 19:22:12
お前のまともはdagagrid10万行だもんなwwww

96 :デフォルトの名無しさん:2010/12/07(火) 19:24:39
10行って言っているんですけど
日本語も通じないのか?

97 :デフォルトの名無しさん:2010/12/07(火) 19:30:17
うんそうだね
10行10万列だねwwwwwwwwwwww

98 :デフォルトの名無しさん:2010/12/07(火) 19:32:12
そう言わないと気が済まないのか?
こういうきちがいがいるからWPF嫌いなんだよ

99 :デフォルトの名無しさん:2010/12/07(火) 19:34:08
ハイスペックPCでサクサク動きますが何か?
なんて言ってるバカしかいないのか?
そんなに軽いならなぜWPFで3Dゲーム作らないんだ?

100 :デフォルトの名無しさん:2010/12/07(火) 19:34:54
また先週の
ゲーム作るならC++のほうがマシ
理論か

101 :デフォルトの名無しさん:2010/12/07(火) 19:35:31
軽いなら1万行で余裕でしょ?
早くWPFで作ってよ

102 :デフォルトの名無しさん:2010/12/07(火) 19:35:57
10万行野郎をあまり虐めてやるなよ…

103 :デフォルトの名無しさん:2010/12/07(火) 19:37:31
10万行君の名言

ゲーム作るならWPFよりC++のほうがいい!
1万行のデータグリッドのfps見れ
WPFはXAMLとC#の二つを覚えなきゃいけないからダメ

104 :デフォルトの名無しさん:2010/12/07(火) 19:37:47
全体のPCからいったら
俺の持ってるPCはミドルかそれ以上
そのPCでさえ、10行のdatagridがこんなにもっさりなのはなぜなんだ?
IDEもいちいち重いしデバッグ作業でイライラするわ

105 :デフォルトの名無しさん:2010/12/07(火) 19:38:37
10万行なんて一言も言っていないんだけど?
それ面白いと思ってんの?

106 :デフォルトの名無しさん:2010/12/07(火) 19:38:56
プログラム初心者:WPF遅い糞

みんな:遅くないよ?ちなみにどんな環境なの?

プログラム初心者:10万行のDataGridが遅すぎ

みんな:マァマァ(((ノ´ー`)ノ

107 :デフォルトの名無しさん:2010/12/07(火) 19:39:33
つまりゲームも作れない
Datagridもできない
IDE糞重い
小規模アプリだと生産性悪い

一体なにができるの?
オサレGUIしかできないじゃん

108 :デフォルトの名無しさん:2010/12/07(火) 19:39:57
10万行のGrid表示とかもうね…
これがゆとり教育の弊害か…

109 :デフォルトの名無しさん:2010/12/07(火) 19:40:55
10行でも重いっていってるだろ
プログラマってこういうネチネチしたやつばっかりなのか?
ずっと孤独な人生過ごしてきて人格歪んじゃってるんじゃないの?

110 :デフォルトの名無しさん:2010/12/07(火) 19:41:28
Win7+AthlonNEOシングルコアノートでもそれほど重いとは感じないが

111 :デフォルトの名無しさん:2010/12/07(火) 19:41:33
WPFでゲームで作るならXNAはなんなんだろう

112 :デフォルトの名無しさん:2010/12/07(火) 19:41:54
10万行を10行に言い直しても大人は騙されませんからねヽ(´ー`)ノ

113 :デフォルトの名無しさん:2010/12/07(火) 19:42:50
はいまた人格批判始まった!

そろそろうつ病になって自殺とか言い始めますよ

114 :デフォルトの名無しさん:2010/12/07(火) 19:43:21
10万行gridってさ、htmlでいえば一つのページに空divタグが1万あるのと同じレベルだよね

115 :デフォルトの名無しさん:2010/12/07(火) 19:44:55
ぱぇぽぃ2 ? Blog Archive ? XP on WPF
http://palepoli.skr.jp/wp/2008/06/11/xp-on-wpf/

ここのブログでも重いと書いている

116 :デフォルトの名無しさん:2010/12/07(火) 19:46:19
( ´д)ヒソ(´д`)ヒソ(д` )(ソースは個人執筆の2008年だって・・・)
( ´д)ヒソ(´д`)ヒソ(д` )(10万行はやっぱり違うわね)

117 :デフォルトの名無しさん:2010/12/07(火) 19:51:13
たった2年で高速になるとでも思っているのか?

118 :デフォルトの名無しさん:2010/12/07(火) 19:53:00
10万行がサクサクになるには後20年は必要なんじゃないかなぁ

119 :デフォルトの名無しさん:2010/12/07(火) 19:53:18
2010なんていれるんじゃなかったわ
2008でも重かったがより一層重い
画面の切り替えも遅いし
ちょっと最小化してたら、開くまでに時間がかかる

120 :デフォルトの名無しさん:2010/12/07(火) 19:54:04
そりゃ10万行かいたソースを10ファイル開けば重いだろ…

121 :デフォルトの名無しさん:2010/12/07(火) 19:56:20
10行でも重いけどね
そうやって摩り替えないと擁護できないの?

122 :デフォルトの名無しさん:2010/12/07(火) 19:57:30
10万行を10行と言い直すのはあまりに説得力がないのよねー
1000行なら良い嘘になったのにもったいないなー

123 :デフォルトの名無しさん:2010/12/07(火) 20:00:22
他のソース参照するときとかにVS2010を3つくらい起動することあるけど
Expression Web4よりかは軽いよ



Win7の話で悪いけど

124 :デフォルトの名無しさん:2010/12/07(火) 20:01:59
俺、思ったんだけど10万行はUHDTVを100枚あわせたモニタでみてるんじゃないかな?
だとしたら10万行も有りだと思うんだ

125 :デフォルトの名無しさん:2010/12/07(火) 20:04:42
>>81
縦も横も仮想化を有効にする。EnableColumnVirtualizationとEnableRowVirtualizationをtrueで。
デフォルトでは横の仮想化が有効じゃないんだよ。
これでセルの中に無茶なものを突っ込まない限りはそこそこ実用的な速度で動くようになるはずだしデータ量に依存しない速度になる。
グループ化は仮想化が無効になるので使っちゃ駄目。
それでも遅いなら列の幅などのレイアウトが自動調整されるときのコストがかなり掛かるので
なるべく固定サイズになるようにしておく。
サイズに影響しない要素なら多少多くても速度にはあまり影響しないので。
Bindingはなるべくシンプルに動作するようにしないと若干遅くなるけど無茶やらなければあまり影響ないかな。

126 :デフォルトの名無しさん:2010/12/07(火) 20:19:38
>>125
それはやってなかったな
デフォルトのオート調整になってる
まあ、それやったところでそんなに変わらないだろうし
試す気にもならない
たった10行と5列のデータなのにあれだけ重いんだから
PC変えてからWinformはそこそこ快適になったが、
WPFはまだだめだな
こんな遅いの作って配布なんて考えられない

Win7でどんな挙動になるかは知らないが
XPユーザーじゃ使う気にならない

127 :デフォルトの名無しさん:2010/12/07(火) 20:21:18
使わなくていいです

128 :デフォルトの名無しさん:2010/12/07(火) 20:39:21
>>125
それ書いても10万行君は理解出来てないと思うよ
概念とかどうしてそれで軽くなるとかそういう根本的なところがさ

129 :デフォルトの名無しさん:2010/12/07(火) 22:04:11
そんな事よりMVVMだっ!!

130 :デフォルトの名無しさん:2010/12/07(火) 22:35:50
FPSってどうやって計るのん

131 :デフォルトの名無しさん:2010/12/07(火) 22:40:45
http://www.dotup.org/uploda/www.dotup.org1288654.png
22万行でもまだVPCでXP動かしてるより軽いわ

132 :デフォルトの名無しさん:2010/12/07(火) 22:45:47
VPCはGPUパワーがないからだろ。
WPFのGPU依存度はかなり高いし、じっさいVAIO ZでGPUを切り替えた時、体感が劇的に変化する

133 :デフォルトの名無しさん:2010/12/07(火) 22:47:24
VAIO Zって何?オモチャ?

134 :デフォルトの名無しさん:2010/12/07(火) 22:47:56
そういえば5750買ったばっかりだった

135 :デフォルトの名無しさん:2010/12/07(火) 23:31:44
WPFでGPUのアクセラレータは言うほど効果がない割にバグが多いので無効にするのが無難。
無効にした方が速いとか意味がないことも起こるし。

136 :デフォルトの名無しさん:2010/12/07(火) 23:37:48
バグってのはドライバのね。
XPでWPFが相性が悪いっていう原因の大半がGPUのドライバのせいだと思うよ。
特にIntelのオンボードはちゃんと動くものを見たことがない。

137 :デフォルトの名無しさん:2010/12/07(火) 23:51:55
なにこのスレ速度w

138 :デフォルトの名無しさん:2010/12/08(水) 00:59:01
アンチが必死になって叩かないといけなくなるほどの人気w
2chの片隅でどんなに叩いても大勢には何一つ影響ないのによくやるもんだww

139 :デフォルトの名無しさん:2010/12/08(水) 01:16:47
>>137
Part1では4カ月かかったのがたった2日…。

140 :デフォルトの名無しさん:2010/12/08(水) 01:21:19
前スレより

1 .NET3.0もリリースされて盛り上がってまいりますた。
2 .NET3.5 SP1 Betaもリリースされて盛り上がってまいりますた。
3 .NET3.5 SP1 もリリースされて盛り上がってまいりますた。
4 .NET3.5 SP1 もリリースされて盛り上がってまいりますた。
5 .NET3.5 SP1 もリリースされて盛り上がってまいりますた。
6 .NET4.0もリリースされたけど別に盛り上がってはいないよね…。
7 パワフルで柔軟すぎるのが敗因か? 正直ついていけないよね…。
8 .NET4 もリリースされて盛り上がってまいりますた。

Part1 2006/11/08-2008/05/24 563日
Part2 2008/05/22-2009/01/11 234日
Part3 2009/01/09-2009/06/20 162日
Part4 2009/06/19-2009/12/27 191日
Part5 2009/12/27-2010/05/21 145日
Part6 2010/05/21-2010/08/28 99日
Part7 2010/08/22-2010/12/06 106日
Part8 2010/12/05-2011/?

盛り上がってまいりますた!

141 :デフォルトの名無しさん:2010/12/08(水) 01:21:19
>>136
しかしCore iシリーズのHD GraphicsのコンパネはWPFで作られている・・・

142 :デフォルトの名無しさん:2010/12/08(水) 01:41:17
そうなんだよね。
設定画面はWPFなのにWPFのアプリが落ちたりする不具合を抱えてる。
設定画面はちゃんと動いてるだけになんでWPFアプリが動かないのか悩んだよ。

143 :デフォルトの名無しさん:2010/12/08(水) 02:38:35
一気にスレ進むと読む気無くすな

144 :デフォルトの名無しさん:2010/12/08(水) 03:13:47
読む価値ないからいいよ

145 :デフォルトの名無しさん:2010/12/08(水) 03:44:54
WPFはVisual Studioのデザイナ部分が使いづらい。Expression Brendあれば非常に良いけどなかったら使いづらいんだが
趣味グラマは数万円もするようなツールは買いたがらないからな。
昔に比べてだいぶ流行ってきたとはいえ、まだまだだろう。
フリーのExpression Brendでもでればいいのだが。

146 :デフォルトの名無しさん:2010/12/08(水) 04:41:47
WinFormsレベルでテンプレートをちょっと書き換えて使う程度ならVSのデザイナでも十分。

そこから踏み込むならBlendがあるに越したことはない。
無料版出せとは言わないまでも、単品パッケージの復活ぐらいはやってほしいね。Express可のUPGが15kぐらいだっけ?

147 :デフォルトの名無しさん:2010/12/08(水) 08:37:49
無料のBlendがあれば起爆剤になるかもな
こんなのが作れたのかってな感じで

148 :デフォルトの名無しさん:2010/12/08(水) 11:10:12
WebBrowserは物凄く処理が速いね
ウィンドウを拡大縮小したときの文字列の並び替えが
すごく滑らかだ
同じソースなのにlive2chだとカクカクする

どうして?

149 :デフォルトの名無しさん:2010/12/08(水) 11:37:16
知らんがな (´・ω・`)

150 :デフォルトの名無しさん:2010/12/08(水) 12:56:38
あ、やっぱ糞重いわ
900スレ取り込んだら激重いw
WPF使えねーな

151 :デフォルトの名無しさん:2010/12/08(水) 13:09:03
ソースコードぐらい出せよ

152 :デフォルトの名無しさん:2010/12/08(水) 13:37:47
ソースコード出すほどでもない
live2chで1000レスあるスレをhtmlで書き出して
コピペしたWebBrowserのソースに割り当てただけ

読み込み自体はまだ許容範囲だが(それでもJaneStyleより遥かに遅い)
ウィンドウを拡大縮小するともっさもさ

Delphiやれっつーことか
でも、今更やりたくないな

153 :デフォルトの名無しさん:2010/12/08(水) 13:46:07
それ笑うとこ?

154 :デフォルトの名無しさん:2010/12/08(水) 13:47:39
どこが?

155 :デフォルトの名無しさん:2010/12/08(水) 13:53:37
国連WPF協会がロッテの渡辺俊介投手に感謝状
http://kamome.2ch.net/test/read.cgi/mnewsplus/1291782924/

156 :デフォルトの名無しさん:2010/12/08(水) 14:00:24
>>148>>150>>152
なんでWPF叩いてるのってこんな奴ばっかりなんだろ…。
WebBrowserが重いって馬鹿だろ。そんな作り方じゃDelphiで書いても糞重いわ。

157 :デフォルトの名無しさん:2010/12/08(水) 14:02:45
ウンコ

158 :デフォルトの名無しさん:2010/12/08(水) 14:10:36
そんな煽りいらないから
正しいやり方教えろよ

159 :デフォルトの名無しさん:2010/12/08(水) 14:20:51
最初から煽ったりせず素直に聞いてりゃよかったのに

160 :デフォルトの名無しさん:2010/12/08(水) 14:22:15
素直に聞いて答える奴なんていない

161 :デフォルトの名無しさん:2010/12/08(水) 14:23:08
WPFはIntelのオンボードグラボと相性最悪だったのか。

162 :デフォルトの名無しさん:2010/12/08(水) 14:40:50
<setter property="Background" value="Black"/>
みたいな書き方にしないで、素直に
<setter Background="Black"/>

みたいにかけるようにすればよかったのにね。
いちいちPropetyだのvaluだの余計な単語つけないといけなくてめんどい

163 :デフォルトの名無しさん:2010/12/08(水) 14:54:41
setter要素のBackground属性にしか見えない。

164 :デフォルトの名無しさん:2010/12/08(水) 16:47:33
Setterクラスのpropertyプロパティとvalueプロパティを設定しているだけだから。
Backgroundプロパティを持ってるわけではないのでそんな書き方は無理。

165 :デフォルトの名無しさん:2010/12/08(水) 17:34:10
プロパティのsetアセセサみたいに使いたいってことじゃないの

166 :デフォルトの名無しさん:2010/12/08(水) 17:38:22
言いたいことはわかるけど、ちょっと無理だねぇ。
実際にはコードでクラスでほげほげされてるしね。

167 :152:2010/12/08(水) 17:43:42
そろそろ答えが知りたいです

168 :デフォルトの名無しさん:2010/12/08(水) 17:53:44
そもそも専ブラのレンダリングとWebBrowserのレンダリングを比べてる時点で何かおかしい

169 :デフォルトの名無しさん:2010/12/08(水) 18:10:55
WebBrowser使わずに自分でレンダリングしないと

170 :デフォルトの名無しさん:2010/12/08(水) 18:13:35
両方IEコンポーネントだから単に使い方が悪いんじゃ?
timeBeginPeriod(1)でも呼んどけばいいんじゃない?

171 :170:2010/12/08(水) 18:32:28
勘違いしてた。live2chじゃなくてJaneが比較相手か。
そんなの自前でレンダリングしろ。

172 :152:2010/12/08(水) 19:56:14
レンダリング・・・
言うと思ったw

live2chと比べているのに
レンダリングしろってそりゃないですよw
そんな解決法しか思いつかないのにえらそうに
「そんな作り方はダメ」なんて言ってたの?
ユーザーがスキンを自由にカスタマイズできるように
WebBrowser使っているのにさ、まったく理解してないね

じゃあ、自由にカスタマイズできるようにしろって?
そういうことするのは無能と言っていいでしょ

173 :デフォルトの名無しさん:2010/12/08(水) 19:58:03
煽りたいなら他所でやれ。

174 :デフォルトの名無しさん:2010/12/08(水) 20:10:28
WebBrowserを使う限りはIEコンポだけの問題であってWPFは全く関係ないから
WPFスレとしては自分でレンダリングしろと言うしかないでしょう
スレ違いだ

175 :デフォルトの名無しさん:2010/12/08(水) 20:22:40
上でjaneと比べてんだろ痴呆

176 :デフォルトの名無しさん:2010/12/08(水) 20:23:51
>>152
なんか、レス数が増えると重くなるって言ってる様
に受け取れるんだが、WebBrowserコントロール
って表示はlive2chと同じ仕組みが用いられてんだか
ら中で表示するhtmlのサイズは関係ないと思うのだ
が、WebBrowserコントロールをどんな使い方して
んのさ。

作り直しが面倒な程作り込んでるなら別の部分に
問題があるじゃない?さっきの10行10万列の野郎
みたいにリサイズの度に10万個のひろゆき画像を
三次元に回転させるとかだったらそれは重いと
思うよ。
後、知ってると思うがもし仮にXP上で動かして
いたならこれは諦めた方が良いでしょ


177 :デフォルトの名無しさん:2010/12/08(水) 20:27:18
WebBrowserの場合はXPでも関係ないよ
ネイティブのウィンドウを重ねてActiveXコントロール貼ってるだけだから

178 :152:2010/12/08(水) 20:28:26
WPF版のWebBrowserはVB6の頃から変わってないってこと?

作りこむも何もWebBrowser貼り付けただけのものだよ

XPだとなぜ諦めないといけないの?
.Net入ってたら同じ環境になるんじゃないの?

179 :152:2010/12/08(水) 20:29:47
Win7にするとエロゲできなくなるから嫌なんだよ

180 :デフォルトの名無しさん:2010/12/08(水) 20:32:07
SilverlightのOOB使えば?
OSの影響が無いし、ActiveX丸出しじゃなくてもうちょっとちゃんとしたWebBrowserが使えるよ

181 :デフォルトの名無しさん:2010/12/08(水) 20:32:52
よっぽどのことがない限り出来る

182 :デフォルトの名無しさん:2010/12/08(水) 20:41:05
WebBrowserは独立した空域を持ってるからWPFのレンダリングとは全く関係ないんだよ。
極端な話、枠を消したウィンドウにActiveXコントロールを貼ってWPFのウィンドウ上に重ねてるだけ。
だからXP上のレンダリングの問題とかの話は適用できないの。

183 :152:2010/12/08(水) 20:56:55
だったら、FormsのWebBrowser呼び出して使った方がよくないか?
sourceにバインドしようと思ったらよくわからないオブジェクトのプロパティを
使わないといけないみたいで、あれみて一気にやる気失せた

184 :デフォルトの名無しさん:2010/12/08(水) 21:00:28
だから同じなんだよWinFormsだろうがC++でラッパー書こうが。
単なるActiveXコントロール。WPFとは全く関係ない。スレ違い。

185 :デフォルトの名無しさん:2010/12/08(水) 23:14:52
なんでlostfocus2回走ってしまうん?
チェックしてダメだったら元のとこに戻したいってだけなのに.focusで無限ループ
どうしましょ

186 :デフォルトの名無しさん:2010/12/08(水) 23:36:59
PreviewLostKeyBoardFocusとかでチェックしてキャンセルした方が余計なイベントが走らなくて素直に動いてくれると思うよ。

187 :デフォルトの名無しさん:2010/12/08(水) 23:37:56
この辺じゃね
> このイベントはバブル ルーティングを使用するため、フォーカスを失う要素は、
> イベント ハンドラが実際にアタッチされている要素ではなく、子要素である可能性があります。
> イベント データの Source をチェックして、フォーカスを取得した実際の要素を確認してください。

188 :デフォルトの名無しさん:2010/12/09(木) 00:23:28
>>186
ああ、それならキャンセル持ってるですね。試してみます。
>>187
ちょこちょこsenderに移動先のコントロールが紛れ込んでくるんですが、
その辺が関係してるかもしれないですね。

複数のコントロールをまとめて一つのlostfocusにsetterEventで飛ばしてるんですが、
何かバラにした方が良さげな気がしてきました。
どうもです。

189 :デフォルトの名無しさん:2010/12/09(木) 01:59:00
なんでButtonは背景がBackgroundなのに
RectangleはFillなんだ

Rectangle Background="Red"ってやってもエラーでるから何事かと15秒くらい考えてしまったじゃないか。
Microsoftはどっちかに統一しろよクソめ

190 :デフォルトの名無しさん:2010/12/09(木) 02:12:50
こういう事言う人って15秒じゃなくて5時間ぐらいそこで引っかかってるんだよねw

191 :デフォルトの名無しさん:2010/12/09(木) 02:22:07
図形を塗り潰すのはFill、アウトラインを描くのはStroke。
なにもおかしい所はない。
他のビジュアル要素を内包するコントロールの背景がBackgroundで前景がForegroundなのも当たり前。
PenがBrushで、BorderがBorderBrushとBackgroundで、PanelがBackgroundになるのも当然の結果。

言葉の意味考えずに、単語だけでプログラミングやってんの?
こういう奴って見るだけで頭痛になりそうな痛い変数名・関数名を量産してそう。

192 :デフォルトの名無しさん:2010/12/09(木) 02:23:03
ShapeかControlかの違いだよ。
そういう基本的な図形はShapeなので区別は付くはずだよ。

193 :デフォルトの名無しさん:2010/12/09(木) 02:31:22
またあるコントロールではテキストがContentだったりTextだったりわけわからん。

Windows Formのコントロールなら
FormもLabelもButtonもTextBoxも全部Textプロパティだったのに。

WPFはWindows Formのクラス群でTextプロパティだったのがいろいろ分かれてる。
いちいち、このコントロールはTextがContentで、あっちはTextで、別のなにかはさらに違ってって全部いちいち暗記しなきゃならないのか。めんどくせーな。

194 :デフォルトの名無しさん:2010/12/09(木) 02:39:10
Textなものほとんどないじゃんw

195 :デフォルトの名無しさん:2010/12/09(木) 02:40:36
>>193
暗記しなきゃならないって馬鹿か。
中に何が入るか考えれば暗記する必要などない。

196 :デフォルトの名無しさん:2010/12/09(木) 02:46:59
Textはstringしか入らない箇所で使われる。
Contentは文字に限らずいろんな要素を入れられるしContentTemplateなど表示のカスタマイズができる。
そんな感じに使い分けられてるから結構解りやすいと思うよ。

197 :デフォルトの名無しさん:2010/12/09(木) 02:47:45
ContentControl クラス
http://msdn.microsoft.com/ja-jp/library/system.windows.controls.contentcontrol.aspx

の構文と継承を1時間ほど見つめ続けろ

198 :デフォルトの名無しさん:2010/12/09(木) 02:53:16
なんか地味にWindows Formアプリケーションでは
Buttonとかの背景がBackColorっていう名前のプロパティだったのに
WPFになるとBackgroundとか、意味も無く名前変わってるし。
なんなのこれは。Formから移ってきた人がうっかり前と同じようにコード書いてエラーおこさせるための嫌がらせか?

199 :デフォルトの名無しさん:2010/12/09(木) 02:56:28
Backgroundがどのクラスのプロパティか調べろカス
Buttonクラスの継承調べろカス

200 :デフォルトの名無しさん:2010/12/09(木) 03:01:52
これでも見れば?
http://msdn.microsoft.com/ja-jp/library/ms751565.aspx

201 :デフォルトの名無しさん:2010/12/09(木) 03:01:59
>>198
>意味も無く名前変わってる
お前、無能だとよく馬鹿にされてるだろ。
Backgroundに入るのがColorだけだとでも思っているのか?www
ちょっとぐらい調べてから喋れクソめ

202 :デフォルトの名無しさん:2010/12/09(木) 03:02:28
意味なくはないだろw
BackColor とかどう見ても失敗。
ImageBrush とかも使えるし。

203 :デフォルトの名無しさん:2010/12/09(木) 03:04:25
ボタンみたいな基本的なクラスでさえいちいち調べないといけないのか。
Windows Formでつちかった知識をいかせないなんてWPFはクソな仕様なんだな

204 :デフォルトの名無しさん:2010/12/09(木) 03:05:12
WinFormsすら使えないのにWinForms引き合いに出してWPF叩こうとするからすぐ破綻するんだよ

205 :デフォルトの名無しさん:2010/12/09(木) 03:07:48
いや使えるよ?

Button.Text="Click me!";

これでOKだったんだから
WPFでも全く同じコードで動くようにすべきだよ。

206 :デフォルトの名無しさん:2010/12/09(木) 03:08:15
何でこの人このスレにいるんだろう…

207 :デフォルトの名無しさん:2010/12/09(木) 03:08:56
プロパティを何個覚えましたってレベルで「WinFormsで培った知識を生かせない(キリッ」って面白いアホだな。
こういう奴って、WinFormsの頃からバインディングがあった事すら知らないか、ろくに使いこなせてなかったんだろうな。

208 :デフォルトの名無しさん:2010/12/09(木) 03:16:36
WPFスレに居る人達って、ほとんどがWinFormsに不満感じて移ってきた人だろ。
WinFormsの良いとこも悪いとこもお前以上に理解した上で出した結論。

その中に飛び込んで言うことが「プロパティ名が気に食わない」だけかよw

209 :デフォルトの名無しさん:2010/12/09(木) 11:36:46
ScaleTransformで、コントロールの拡大、縮小をしてる。

ScaleTransformでの縮小時に文字が読めなくなってしまうのと、
コントロール自体の縦横比率で、文字の縦横比率が変わってしまうので困る。

全体サイズと内部配置を変更して、文字サイズは固定する方法ってない?

210 :デフォルトの名無しさん:2010/12/09(木) 11:40:38
拡大・縮小で位置合わせするとかないわ。

Grid で列幅、行高さを auto なり * なり指定すればいいのに。

211 :デフォルトの名無しさん:2010/12/09(木) 11:46:14
そっかあ・・・

細かくコントロールの配置を整えないので、Gridは厳しいなあ。

地道にpoint計算して、Canvas.SetLeftすることにします。
ありがとう。

212 :デフォルトの名無しさん:2010/12/09(木) 11:50:20
細かく整えないならむしろ Grid だろ。
固定でやってたら文面ちょこっと変えただけで再配置になるし。

213 :デフォルトの名無しさん:2010/12/09(木) 11:51:15
あっ、あと、拡大縮小するならわざわざ ScaleTransform 書かなくても、
ViewBox ってのがあるよ。中身を自動サイズ調整。

214 :デフォルトの名無しさん:2010/12/09(木) 11:59:39
ごめん。

細かくコントロールの配置を整え"る"ので、の書き間違い・・・
ViewBox試してみます!

215 :デフォルトの名無しさん:2010/12/09(木) 15:26:20
Transformってなんか平行移動ができるらしいね。
TopやLeftとかを変えればいいだけだと思うんだがなんの意味があるんだろう。

216 :デフォルトの名無しさん:2010/12/09(木) 15:36:25
>>215
LayoutTransform と RenderTransform で挙動違うからねぇ。
Layout 相当の方は確かに Top/Left の変更で行けなくはないが、Render の方は無理。

アニメーションでぶるぶる震えるとかそういうことやるのは Transform の方がいいともう。
Top とか Left とかは Canvas 内にいないと使えないし。
Content の入れ子ができる WPF じゃ Top/Left はいまいち使えない。

217 :デフォルトの名無しさん:2010/12/09(木) 15:39:05
Gridはいちいち
<RowDefinition/>
をいっぱい書くのめんどくさいなぁ
<RowDefinition*8/>
みたいな書き方できるようにしてくれよ

218 :デフォルトの名無しさん:2010/12/09(木) 15:50:22
>>217
特殊文法はどこかで破たんするからなぁ。
ツールとの連携を考えると、正規の XML の文法からそれない方が身のため。

RowDefinition とかは Visual Studio の UI デザイナー使うなぁ、
さすがに手書きめんどくさいんで。

219 :デフォルトの名無しさん:2010/12/09(木) 16:02:32
もともとXAMLは手書きには向かないだろ。
簡単なツールならVSで十分だが、出来ればBlendを買うのを勧める

220 :デフォルトの名無しさん:2010/12/09(木) 16:08:59
>>211
http://www.youtube.com/watch?v=lnHa6OZa0U4
これで何が不満なのか。

221 :デフォルトの名無しさん:2010/12/10(金) 00:12:10
WPFでMVVM的に command でアプリ終了させたいんだけどどう実装すりゃいいの?
<MenuItem Header="Exit" Command="Close"/>
だとメニューのExitがdisableなままでクリックできないし。
自前Command作ってもVMがVを持ってないから Close できないわけで。。。
どうすりゃいい?

222 :デフォルトの名無しさん:2010/12/10(金) 01:16:31
>>221
よくあるパターンでは、ViewModelにRequestCloseってイベント作っておいて、
DataContext への代入の時にそれに += するようなのか、
もしくは、最近はやりは、
Close イベント拾ってウィンドウ閉じるようなビヘイビア書くかかなぁ。

223 :デフォルトの名無しさん:2010/12/10(金) 01:22:05
XAMLって
C#のコードを簡略化して書けるようなものなの?

C#だと
なんちゃら 変数 = new なんちゃら();
変数.Child.Add(なんとか);

みたいなのを
<なんちゃら>
<なんとか>
</なんちゃら>
だけでかけて、いちいちnewとかChild.Addとか書かなくていいから大幅に省略できてラクチン?

224 :デフォルトの名無しさん:2010/12/10(金) 01:25:04
>>223
ツールが読みやすいように XML にしてるとか、
依存関係プロパティやらデータバインディングやら、C# で書きにくいのを楽に書けるとか。

Children.Add とかは、C# 3.0 以降、書く必要ない。
var layoutRoot = new Grid {
Children = { new Button(), new TextBox() }
};
みたいに書ける。

225 :デフォルトの名無しさん:2010/12/10(金) 01:30:12
>>223
違う。簡略化じゃなくて、外部ツールでも扱い易くするために、あの文法になった。
手書きを前提としては作ってない。

あと、今は
List<string> list = new List<string>();
list.Add("hoge")

var list = new List<string> { "hoge" };
と書ける。

226 :225:2010/12/10(金) 01:31:05
ごめん、被った。

227 :デフォルトの名無しさん:2010/12/10(金) 01:37:23
外部ツールって、Visual C#とかExpress Brendとか?

228 :デフォルトの名無しさん:2010/12/10(金) 02:24:58
>>227
それも含めて、ユーザーもツールを作りやすいように。
Microsoft は、XAML を WPF や Silverlight 専用とせずに .NET に関するデータをテキスト形式で書くための言語として作った
(だから、XAML でユーザー定義クラスのインスタンスも生成できる)。

.NET 同士でデータを交換したり、読み書きするなら、単なる XML を使うよりは、XAML を使ったほうが簡単に扱えるようになってる。

229 :221:2010/12/10(金) 02:32:30
結局自前 Command 作って

XAMLに
<MenuItem Header="Exit" Command="{Binding ExitApp}"/>

VMに
public void Execute(object parameter) {
System.Windows.Application.Current.MainWindow.Close();
}

こんな感じに落ち着きましたです。
なんかかっこ悪い気がするけど終了するからまぁいいかと。

そんでもって今度は、ウィンドウ枠消して Label だけにしたウィンドウを
どうやってドラッグ移動させるかでどつぼってる中orz

230 :デフォルトの名無しさん:2010/12/10(金) 02:40:09
>>229
将来的にはそんなかっこ悪い書き方しなくなりそうな感じするけど、
現状はそれでいいと思う。

枠消したアプリは、MouseDown イベントのハンドラーで DragMove メソッド呼ぶだけだったと思う。

231 :デフォルトの名無しさん:2010/12/10(金) 02:43:06
そういうのはビヘイビアでまとめようぜ…

232 :デフォルトの名無しさん:2010/12/10(金) 02:45:30
まあ、標準で入るの待ちかなぁ。
標準になること自体は確定してるみたいなので、後は次期の問題・・・

233 :デフォルトの名無しさん:2010/12/10(金) 03:22:59
基本的なC#の知識もなしでいきなりWPFやったら詰まった。
参照型とか意味わからん。

234 :デフォルトの名無しさん:2010/12/10(金) 03:30:15
>>233
参照型:jクラス(class)
値型:構造体(struct), 列挙型(enum) 組込み型(int,double...)

C# 参照型 でググると解説がいっぱいある。ふらっとC#あたりで聞いてもいい。

235 :デフォルトの名無しさん:2010/12/10(金) 03:54:20
なんで英語バージョンのWPFだと
Routed eventなのに日本語だと
ルーティング イベント
になるの?
用語つけたやつ誰だよ。

236 :デフォルトの名無しさん:2010/12/10(金) 03:54:53
>>230
ありがとう。
Label に MouseDown="label1_MouseDown" 追加して Window1.xaml.cs に
private void label1_MouseDown(object sender, MouseButtonEventArgs e)
{
this.DragMove();
}
追加でいけました。

>>231
添付ビヘイビアってやつですかね?
DragMoveBehaviour みたいな


237 :デフォルトの名無しさん:2010/12/10(金) 04:02:40
>>231
DragMoveをする添付ビヘイビア - WPF memo http://goo.gl/ZtBZ7
のコードでビヘイビアベースでもいけました。

こっちはかっこいい。

いろいろパラダイム変わってるからとっつきは難しいなぁWPF

238 :デフォルトの名無しさん:2010/12/10(金) 09:54:27
>>235
MS 規則だと割とそうみたいよ、routed event に限らず、-ed 単語の多くが・・・
ほんとなんでそんなことになったのか。

239 :デフォルトの名無しさん:2010/12/10(金) 10:05:11
MS無視してルーテッドイベントて名前に変えちゃおうぜ

240 :デフォルトの名無しさん:2010/12/10(金) 16:16:01
MSの感覚だと「ルーティングされるイベント」となりそうだけど
長いからそれを略したと考えれば別に不自然じゃないでしょ

241 :デフォルトの名無しさん:2010/12/10(金) 18:09:54
>>240
なんという不自然な考え方w

242 :デフォルトの名無しさん:2010/12/10(金) 19:22:03
「自動実装されるプロパティ」とかあるじゃん。
略して「自動実装プロパティ」と表記されてることも多い。
間に「される」を挟むなら「ルートされる」じゃなくて「ルーティングされる」でしょ

243 :デフォルトの名無しさん:2010/12/10(金) 22:40:26
910 名前:デフォルトの名無しさん[sage] 投稿日:2010/12/10(金) 15:40:39
Microsoft Visual Studio 2010 Service Pack 1 Beta
http://www.microsoft.com/downloads/details.aspx?FamilyID=11ea69cb-cf12-4842-a3d7-b32a1e5642e2&displayLang=ja


これ入れたらWPF重くなった。
でも、setter Property=""の部分とかstyle Target=""の部分あたりがインテリセンスができるようになった。

244 :デフォルトの名無しさん:2010/12/10(金) 22:46:19
それ前からできなかったっけ
Silverlight4ツールキットにXAMLデザイナの更新が含まれてたんだったかな

245 :デフォルトの名無しさん:2010/12/10(金) 22:52:08
ToolkitじゃなくてSilverLight Tools

246 :デフォルトの名無しさん:2010/12/11(土) 02:20:14
wpf. silverlightにそれぞれtoolsだのtoolkitだの名前の似た拡張がごちゃごちゃあるの
は、ほんとなんとかして欲しい。vsのアップデートまたは機能拡張として正規に適用
されるべきもんだし、そもそもなんでcodeplexみたいな裏街道でこっそりダウ
ソしなきゃならんのだ?
バージョンも2010 april cptとか何が最新なのかさっぱりわからんし。

247 :デフォルトの名無しさん:2010/12/11(土) 02:35:14
ToolkitとToolsはネイティブな英語話者なら区別ついてるのかね?

>>246
codeplex は、早期に発表しておきたいという場。
ぶっちゃけ、人柱ほいほい。

安定したのから製品版に入っていくはず。

248 :デフォルトの名無しさん:2010/12/11(土) 02:36:38
>>246
あと、CTP(のことよね?<cpt)は、
β以下の完全人柱バージョンって意味。
さっぱりわからん人は触れちゃダメ。

249 :デフォルトの名無しさん:2010/12/11(土) 02:38:23
WPFは視覚的な図や画像を利用した教材を作るのにいいかもなー
歴史の勉強ソフトとか。

でもそういうことするんだったら、別のソフトつかったほうがいいか。

250 :デフォルトの名無しさん:2010/12/11(土) 09:32:25
最後の行が意味不明

251 :デフォルトの名無しさん:2010/12/11(土) 14:23:24
>>249
安土城とか?

252 :デフォルトの名無しさん:2010/12/11(土) 14:41:55
なんで技術からソフトの話になってんだよ

253 :デフォルトの名無しさん:2010/12/11(土) 17:12:10
WPFが何か知らないんだろ

254 :デフォルトの名無しさん:2010/12/11(土) 17:19:14
パッケージソフトだとFlash使ってるのはたまにあるよね
例外なく操作性最悪のゴミだけど

255 :デフォルトの名無しさん:2010/12/11(土) 20:18:33
凝った視覚的な図を作っても
見せる相手がいない

まさか自分で見るために作るのか
さびしいのう

256 :デフォルトの名無しさん:2010/12/11(土) 20:22:24
デザイン担当がテスト開始後に
ドヤ顔でデフォルトのスタイルを作ると言い出した挙句上司が了承した…オワタ

257 :デフォルトの名無しさん:2010/12/12(日) 00:16:18
アナログ時計が簡単に作れるな。便利。

258 :デフォルトの名無しさん:2010/12/12(日) 00:20:07
Blendの使い方わかんないんだが、解説書とか出てないの?

259 :デフォルトの名無しさん:2010/12/12(日) 00:32:34
洋書しかないような
間違えてBlend Bookとか買っちゃだめよ

260 :デフォルトの名無しさん:2010/12/12(日) 00:46:51
MS の出してる簡単なビデオみたり、
youtube に Blend 使ったビデオあるから見れば大体はわかる。

261 :デフォルトの名無しさん:2010/12/12(日) 01:04:20
Blendに限らずWPFの本って洋書しかないだろ。

262 :デフォルトの名無しさん:2010/12/12(日) 01:13:56
日本語のもあるにはある。
まともなのはないけどw

263 :デフォルトの名無しさん:2010/12/12(日) 07:34:43
スキンはどうやって実装するの?

264 :デフォルトの名無しさん:2010/12/12(日) 08:47:28
http://www.nsa.tv/condoms/kouza/index.html

265 :デフォルトの名無しさん:2010/12/12(日) 08:59:30
URLでネタバレな件

266 :デフォルトの名無しさん:2010/12/12(日) 10:52:37
気にするな

267 :デフォルトの名無しさん:2010/12/12(日) 11:40:13
>>263
スタイル使う
リソースディクショナリにまとめておけば簡単に切り替えられるし
ユーザーが作ったものを動的に読み込むこともできる

268 :デフォルトの名無しさん:2010/12/12(日) 23:54:35
>>267
スタイルのスキン的使い方をまとめてるようなところない?

269 :デフォルトの名無しさん:2010/12/13(月) 16:41:39
MenuItemのCommandプロパティにApplicationCommands.Openを設定していると,
InputGestureTextが"Ctrl+O"とか設定されるけど,
それを抑止するにはどうしたらいいでしょう?

面倒だけどCommandを使わずにイベントハンドラで処理するしかないのかニャ?

270 :デフォルトの名無しさん:2010/12/13(月) 19:50:23
初めてWPF触ったんだけど、直感的に思ったのはコレ↓
http://www.youtube.com/watch?v=TgVuwq1HRPk


271 :デフォルトの名無しさん:2010/12/13(月) 19:56:44
そう思ったのならちょっと危ないよ
このメカニズムは保守に重点を置いてる物だから
何でもできると思ってるのなら大間違い

272 :デフォルトの名無しさん:2010/12/13(月) 20:02:24
保守に重点を置いてるだけならテンプレートだのアニメーションだのといった機能は別にいらないのでは

273 :デフォルトの名無しさん:2010/12/13(月) 20:07:23
普通に考えてWPFはビジュアルに重点を置いてるに決まってるだろ
バインディングの強化はWinFormsやASP.NETからの正当な進化であって
バインディングのためにわざわざ新しく作ったわけじゃない

274 :デフォルトの名無しさん:2010/12/13(月) 20:09:01
MVVMとかの概念を踏まえた設計から保守に重点をおいてるとも言えるんだがな

275 :デフォルトの名無しさん:2010/12/13(月) 20:21:22
別にMVVMみたいな具体的な構造を踏まえてるわけじゃないよ。
一般にMVC的な構造にバインディングは有効だからバインディングが重視されてるだけ。
コマンドバインディングだってあれは本来Ctrl+Cとツールバーのコピーボタンとメニューのコピーボタンで
共通の処理を行うための仕組みだ。

276 :デフォルトの名無しさん:2010/12/13(月) 20:36:56
お前らみたいに一つのことで手一杯なんじゃなくて
何でもできるようになろうとしたんですよ
努力は認めるが

277 :デフォルトの名無しさん:2010/12/13(月) 20:48:29
>>275
たくさんの処理方法がある場合にはコマンドを使えばいいの?

たとえば、たった一つのボタンを押すしか実行する方法が無い場合はWinFormのようにボタンクリックイベントで
ボタンを押しても、ショートカットキーでも、メニュ−でも、その他いろいろな条件でメソッド呼ばれるようにしたい場合コマンドを使うの?

278 :デフォルトの名無しさん:2010/12/13(月) 20:49:42
いちいち方針を示されないと何もできねえのか貴様は

279 :デフォルトの名無しさん:2010/12/13(月) 20:53:35
>>277
そうだよ
で、コマンドが実行されたときの処理はコードビハインドに書く。
イベントハンドラも自由に使っていい。WPFは本来そういう設計。

280 :デフォルトの名無しさん:2010/12/13(月) 20:56:00
やーんこわいーw

281 :デフォルトの名無しさん:2010/12/13(月) 21:02:03
認識「ソビエト=似非科学」のパーマネントを決定付けた罪は大きいよなー

282 :デフォルトの名無しさん:2010/12/13(月) 21:04:33
文系SEは出てこなくて良いです

283 :デフォルトの名無しさん:2010/12/13(月) 21:07:28
>>270
直感というよりは先入観だろうな

284 :デフォルトの名無しさん:2010/12/13(月) 21:09:13
MVVMで設定ダイアログ書いてとってタブページごとにViewとViewModel作ってるんもんで
超面倒臭いんだけど、どうにかならないの?

285 :デフォルトの名無しさん:2010/12/13(月) 21:12:13
MVVM面倒臭いって言ってる奴何なんだろう
MVC的な設計が面倒くさいのは当たり前のことで
それを補って余りあるメリットがあるなら使えばいいんで
無理してMVVM適用する必要ないんだよ?

286 :デフォルトの名無しさん:2010/12/13(月) 21:14:04
そうだ。俺と一緒にビハインドでハンドラ直書きしようぜ!

287 :デフォルトの名無しさん:2010/12/13(月) 21:15:21
ごめんなさい・・・
貴方とはお付き合い出来ません・・・

288 :デフォルトの名無しさん:2010/12/13(月) 21:16:48
MVVMこそ正道であり王道、外道とノンケに用はない

289 :デフォルトの名無しさん:2010/12/13(月) 21:19:06
ていうかblendでコードビハインドでサクサク作ってったほうが楽しいぞ

290 :デフォルトの名無しさん:2010/12/13(月) 21:27:04
ガチMVVMだとツールボタン一つ一つにVM持たせたりすんの?
アホらしすぎる

291 :デフォルトの名無しさん:2010/12/13(月) 21:33:08
お前の頭と同様にほかの人間もアホだと思うなよアホ

292 :デフォルトの名無しさん:2010/12/13(月) 21:49:28
いちいちVMがめんどくさいっていうのは
特に何をするでもないのに変数とプロパティ両方に分けるのはめんどくさい
変数だけでいい
って言ってるようなもの。

まぁpropで簡単に実装できるようになったけどさ。

293 :デフォルトの名無しさん:2010/12/13(月) 22:20:42
you aren't going to need it

294 :デフォルトの名無しさん:2010/12/13(月) 22:32:32
設定ダイアログのタブ別にViewModel作っちゃったら使い辛いだけだろ…

295 :デフォルトの名無しさん:2010/12/13(月) 23:55:53
抽象的なビューのモデルと単なるモデルの区別が付いてないんだろ
ビューを切り替えるという概念もなさそうだし

296 :デフォルトの名無しさん:2010/12/14(火) 00:01:40
日本地図とかの画像を読み込んで
北海道の上にマウスを置くと北海道が光って
青森の上におくと青森が光って・・・

みたいなのってどうやるんだ。やりたいけど今の俺の技術じゃ無理だ。
きっと単純なコードじゃ無理だろう。あきらめた。

297 :デフォルトの名無しさん:2010/12/14(火) 00:03:20
座標と画像がセットになったものが国土地理院からでてなかったか?
それを取り込んでLINQで繋げてはいほいそいで20分でできたと思う

298 :デフォルトの名無しさん:2010/12/14(火) 00:05:12
ListBoxで何でもできるぜ!ってサンプルでそんなの見たことあるな。

299 :デフォルトの名無しさん:2010/12/14(火) 00:08:03
古典的な方法なら
領域をそれぞれ違う色で塗り潰した画像を別に用意しておいて
マウスポインタの下にあるピクセルの色を取得する

300 :デフォルトの名無しさん:2010/12/14(火) 00:54:48
>>295
284だけどビューの切り替えってどうすればいいの?
最初は、たとえばページ選択するたびにデータテンプレートとか切り替えて、
ViewModelの表現方法変えたりしようかとも思ったんだけど、
見た目はタブコントロールのまんまなのに、
タブコントロールとは微妙にコンテキストが違って来てるような気がするし

301 :デフォルトの名無しさん:2010/12/14(火) 04:36:22
<Style.Triggers>でEllipseにマウスが入ったら色を変える
EllipseをDoubleAnimationで大きさや位置を変える

ってやって、マウスをそこそこ早いスピードでEllipseの中に入れたらたまに色変わらないね。ちょっとシビアだけど厄介だなあ。

302 :デフォルトの名無しさん:2010/12/14(火) 05:24:26
>>300
タブ全体と一つのviewmodelを紐づけていいんじゃないの?
一ページにはviewmodelの一部が表示されてる
viewmodelは複数のmodelを管理もしくはより大きなmodelのサブセット
みたいな

303 :デフォルトの名無しさん:2010/12/14(火) 09:15:15
WPF楽だなあと実感が湧いてきた
大量にスニペット自作しないとだめだけどw

304 :デフォルトの名無しさん:2010/12/14(火) 09:17:10
なにそれ?
公開して

305 :デフォルトの名無しさん:2010/12/14(火) 10:35:39
いや、べつに大したことしてない
MVVMの定型句を登録してるだけ

On$Name$ = new DelegateCommand($Name$, parameter=>true);

public DelegateCommand On$Name$ { get; private set; }

public void $Name$(object parameter)
{
}

こんなのとか

306 :デフォルトの名無しさん:2010/12/14(火) 11:31:42
>>305
MS 公式な奴(RIA Services とか)の命名規約見てる感じ、

コマンドが $Name$Command で、実際の処理メソッドが On$Name$ の方がいいと思う。

307 :デフォルトの名無しさん:2010/12/14(火) 12:19:48
メソッドがpublicならメソッド名はNameだけでいいと思うよ。意味的には,メソッドが先にあって
コマンドの方はバインドさせるために補助的に公開しているに過ぎないわけだから。
コマンドをイベントハンドラとして捉えるのであれば,メソッドは名前以前にprivateにしたほうがいい。

308 :デフォルトの名無しさん:2010/12/14(火) 20:58:50
結論としては、「おれのアプリはくずれない」と自慢したいならWPF
そうでないならRubyで十分だよ

309 :デフォルトの名無しさん:2010/12/14(火) 21:04:18
Rubyなんか崩れないどころか何も表示できませんけどね

310 :デフォルトの名無しさん:2010/12/14(火) 21:09:18
何も表示されない?
それってWPFでXAML使わないと言っているようなもんだな

311 :デフォルトの名無しさん:2010/12/14(火) 21:36:41
別にそこまで大規模なアプリじゃなかったら
XAMLって使っても使わなくてもどっちでもいいよね。

312 :デフォルトの名無しさん:2010/12/14(火) 21:52:02
だからBlend使えと

>>308
RubyいいよねRuby。ただしUNIX上に限る

313 :デフォルトの名無しさん:2010/12/14(火) 22:09:53
Blendの使い方がわからない
どこにマニュアル転がってるんだ?

314 :デフォルトの名無しさん:2010/12/14(火) 22:32:52
Ruby苦手だわ
オブジェクト指向の実装が透けて見えてなんかヌルヌルした感じが合わない
依存関係プロパティをコードから触ってる感じ

315 :デフォルトの名無しさん:2010/12/14(火) 22:42:22
http://www.microsoft.com/japan/products/expression/video/
で Blend 3 の製品紹介してるから、真似してみればアニメーションとビヘイビアについてはわかるはず。


316 :デフォルトの名無しさん:2010/12/15(水) 06:23:21
MicrosoftはC++でアプリケーション開発するより
WPFやWIndows Formで開発するほうをオススメしてるみたいだな。

317 :デフォルトの名無しさん:2010/12/15(水) 07:26:47
かといってC++を誰も使わなくなるということにはならないんでしょ
いくら進化した言語ができても、ただ覚えることが増えるだけって感じ

318 :デフォルトの名無しさん:2010/12/15(水) 10:51:45
C++が必要な局面は依然として多く残されている。スレ違いだけど
今更感のあるどうでもいいレスに反応しちゃうぐらいには危機感を感じているようだ。スレ違いだけど

319 :デフォルトの名無しさん:2010/12/15(水) 11:00:57
結局Frameworkってなんだったのって感じ
何も便利になってないし

320 :デフォルトの名無しさん:2010/12/15(水) 11:02:48
WPFやるにはC#使わないといけなくて
VBユーザー涙目って感じでもないしな

321 :デフォルトの名無しさん:2010/12/15(水) 11:05:42
>>319
ム板に居るのにまだそんな事言ってるのかw
何年前から時間止まってるんだ?COBOLer?

322 :デフォルトの名無しさん:2010/12/15(水) 11:05:52
>>319
えっ

323 :デフォルトの名無しさん:2010/12/15(水) 16:22:30
WPFアプリケーションでファイルを選択するためにフォルダを開くときって、どういうUIが標準的ですか?
winformのOpenFolderDialogみたいなものは用意されていないんでしょうか?

324 :デフォルトの名無しさん:2010/12/15(水) 16:32:05
じぃじぃけぇえす

325 :デフォルトの名無しさん:2010/12/15(水) 16:44:40
>>323
Microsoft.Win32.OpenFileDialogクラス

WPFアプリケーション作ったときはusingにMicrosoft.Win32がないから
どこかにOpenFileDialogと書いて、Ctrl+.でusing呼び出して書き込む

326 :デフォルトの名無しさん:2010/12/15(水) 17:07:28
せっかくオサレGUI作ってもファイル&フォルダ選択ダイアログがしょぼいんですよね?

327 :デフォルトの名無しさん:2010/12/15(水) 17:08:49
3DのオサレGUIを作ってもダイアログ起動すると2Dのw2kの頃から変わってないんですよね?

328 :デフォルトの名無しさん:2010/12/15(水) 17:13:08
ばいばいおされさん

329 :デフォルトの名無しさん:2010/12/15(水) 17:29:46
2Dだからw2kと同じだ!って、おされさんは馬鹿だなぁw

330 :デフォルトの名無しさん:2010/12/15(水) 17:39:44
今時携帯機(ゲーム機、電話)でさえ3Dなのに
これだけ重いIDEと実行ファイルで2Dってw

331 :デフォルトの名無しさん:2010/12/15(水) 17:40:53
マニュフェスト設定すればテーマは適用されるよ。
デバッグ時は起動元が違うから適用されないこともあるけどね。

332 :デフォルトの名無しさん:2010/12/15(水) 17:42:28
軽くて、機能的で、短いコードで書けるデスクトップ用の言語を開発しろ
そのうちコンピューターと会話をしながらプログラミングできるソフトを
どこかが先に作っちゃうぞ

333 :デフォルトの名無しさん:2010/12/15(水) 17:43:56
粘着アンチが居座るのは人気がある証拠

334 :デフォルトの名無しさん:2010/12/15(水) 17:44:15
>>331
それだよそれ、デバッグ時と違う結果がでるのがイラっとするよね
デバッグ時はウィンドウの外枠で隠れて見えない文字が起動すると見えるとかほんとやめてほしいわ

335 :デフォルトの名無しさん:2010/12/15(水) 17:44:50
人気なくてもアンチがいるものなんていくらでもあるけど

336 :デフォルトの名無しさん:2010/12/15(水) 17:46:05
WPFはB級映画というより王道のハリウッド映画
ド派手なだけで深みはない

337 :デフォルトの名無しさん:2010/12/15(水) 17:50:00
批判が的外れすぎて笑える

338 :デフォルトの名無しさん:2010/12/15(水) 17:52:16
WPFはインテルのオンボードチップと相性が悪い。
なんかWin7でもインテルのオンボードだとめっちゃ重くなる。

339 :デフォルトの名無しさん:2010/12/15(水) 19:11:34
Win7でオンボの時点で重いよね

340 :デフォルトの名無しさん:2010/12/15(水) 20:11:38
ポータブルWPFまだ?

341 :デフォルトの名無しさん:2010/12/15(水) 20:13:19
それをSilverlightと呼ぶ

342 :デフォルトの名無しさん:2010/12/15(水) 21:34:59
【C#, C♯, C#】 MonoMac 【MonoDevelop】   
http://hibari.2ch.net/test/read.cgi/mac/1291602001/

詳しい奴、ちょっと↑きてくれ

343 :デフォルトの名無しさん:2010/12/15(水) 22:12:31
>>332
winformsでいいだろ

344 :デフォルトの名無しさん:2010/12/16(木) 02:31:26
DataGridにComboBox表示できない
どうすればいい?

345 :デフォルトの名無しさん:2010/12/16(木) 02:35:25
クソして寝ろ

346 :デフォルトの名無しさん:2010/12/16(木) 02:36:14
できないわけないだろ。
DataGridTemplateColumn

347 :デフォルトの名無しさん:2010/12/16(木) 09:44:14
まずはDataGridComboBoxColumnだろ。

348 :デフォルトの名無しさん:2010/12/16(木) 10:03:19
IsReadOnly="True"になってた
すまんかった

で、選択肢を表示させるところまではできたんだが、選択してもそれが残らない(?)
表示されない、空白のまま
やっぱり助けて

DataGridComboBoxColumnつかってます

349 :デフォルトの名無しさん:2010/12/16(木) 10:57:53
ちゃんとBindingしたのか?
してないと値はセットされないので選んでも空になる。

350 :デフォルトの名無しさん:2010/12/16(木) 12:24:03
恥ずかしくて詳しくは言えないがいろいろすまんかった

これからもよろしく

351 :デフォルトの名無しさん:2010/12/17(金) 18:08:33
XAMLでBindingする場合とC#でBindingする場合の違いを教えてください

352 :デフォルトの名無しさん:2010/12/17(金) 18:10:27
使いこなせばBindingだけでかなりのことができるXAMLと
ちょっとだけよのC#

353 :デフォルトの名無しさん:2010/12/17(金) 18:15:21
TextBox.TextをC#でBindingしたら書きこむと即コールバックが呼び出されるのですが、
XAMLでBindingしたらフォーカスが移動しないとコールバックを呼び出してくれません
XAMLでもC#のように即コールバックを呼び出すように設定できますか?

354 :デフォルトの名無しさん:2010/12/17(金) 18:23:32
UpdateSourceTrigger

355 :デフォルトの名無しさん:2010/12/17(金) 18:44:51
ありがとうございました

356 :デフォルトの名無しさん:2010/12/17(金) 22:18:01
>>351
XAMLで出来ないこともC#で出来るけど逆はあまりない。
でもちょっとしたことならXAMLの方が短く書ける。

357 :デフォルトの名無しさん:2010/12/17(金) 22:55:27
できるできないっていう観点だけならXAMLでできることはC#で書いてできる
完全にC#>XAML

ただし書くのがめんどくさくなったりする弊害がある

358 :デフォルトの名無しさん:2010/12/17(金) 22:58:34
Silverlightはネイティブ実装だからXAMLでしか書けないものがあったり
一般にXAMLで書いたほうがロードも速かったりするけどな
WPFはもともとC#で書かれてるからそういうことはないけど

359 :デフォルトの名無しさん:2010/12/17(金) 23:07:33
つまりRuby最強

360 :デフォルトの名無しさん:2010/12/17(金) 23:29:42
XAMLでどこまでやるか悩ましいな
<DockPanel>
 <ListView Name="list" .../>
 <GroupBox DataContext="{Binding SelectedItem,ElementName=list}"...><!--詳細を表示 --></GroupBox>
</DockPanel>
みたいなこともやろうと思えばできるけど、
あちこちの連携をやりすぎるとだんだん挙動がイミフになってキモくなるw

361 :デフォルトの名無しさん:2010/12/17(金) 23:42:45
んなもんIsSynchronizedWithCurrentItemでいいべ

362 :デフォルトの名無しさん:2010/12/17(金) 23:56:04
DataGridでDataGridRowのVisibilityにCollapsed入れまくったらスクロールバーがキモくなった

363 :デフォルトの名無しさん:2010/12/18(土) 00:17:17
あるプロパティをバインドしたい時に
INotifyPropertyChanged でプロパティ実装するのと、
DependencyProperty でプロパティ実装するのって何か変わるの?

更新通知を自由に送れるか送れないかの差?
速度とかはどうなんだろう。

誰か教えてください。

364 :デフォルトの名無しさん:2010/12/18(土) 00:26:08
DependencyPropertyは値をアニメーションさせたり
親要素の値を継承するようにしたり添付プロパティの定義に使ったりする
速度はたぶんINotifyPropertyChangedの方がだいぶ速いだろうけど
バインディングとかやってる時点でプロパティアクセスの速度なんか無意味だからどうでもいい

365 :デフォルトの名無しさん:2010/12/18(土) 00:28:02
なるほど。んじゃあ、基本 DependencyProperty 使っておきます。
ありがとうございました。

366 :デフォルトの名無しさん:2010/12/18(土) 00:31:40
>>364
INotifyPropertyChanged、プロパティ名を文字列で解決してるせいで遅いよ。
バインディングに使う場合には実は依存関係プロパティの方が早い。
普段のプロパティアクセス遅くなるけども。

>>365
ただ、DependencyObject 継承しなきゃいけいのがきつい。
ユーザーコントロールとか作るときにはいいんだけどもね。
ViewModel の場合にはあんまり使わない。

367 :デフォルトの名無しさん:2010/12/18(土) 00:35:40
パフォーマンスの最適化 : データ バインディング
http://msdn.microsoft.com/ja-jp/library/bb613546.aspx

パフォーマンス気にするなら、まず最初にこの辺りを読んどくといい。

368 :デフォルトの名無しさん:2010/12/19(日) 00:57:43
「この部品のこのプロパティはどこの値なのか」を調べる方法ってない?
辿っていくこともできなくはないけど、ものすごくシンドイ。

369 :デフォルトの名無しさん:2010/12/19(日) 01:02:29
親からの継承なのか、スタイルで設定された値なのか、自分自身で設定したものかって話よね?
最新の Silverlight 4 Tools 入れたらプロパティの値の出所表示されるけども?

370 :デフォルトの名無しさん:2010/12/19(日) 01:05:15
おぉ…そんな便利なものが。トン、やってみる。

371 :デフォルトの名無しさん:2010/12/19(日) 01:20:38
Snoop使えよ。

372 :デフォルトの名無しさん:2010/12/19(日) 14:09:58
結局、UIに毛がはえた程度か。
しかもmonoじゃ動かないからwindows専用なのか。

だったら、Qtのdesignerが吐き出すXMLを手動で作るのとあんま変わらん気がする

373 :デフォルトの名無しさん:2010/12/19(日) 15:24:08
UIシステムに対して"UIに毛がはえた程度"って…可哀想に、可哀想に…

374 :デフォルトの名無しさん:2010/12/19(日) 15:25:44
そりゃ世の中のアプリケーションは全て"UIに毛が生えた程度"でしょう

375 :デフォルトの名無しさん:2010/12/19(日) 16:07:38
ユーザーインターフェースに毛が生えるってどういうことなの

376 :デフォルトの名無しさん:2010/12/19(日) 16:10:31
大人になるんだよ

377 :デフォルトの名無しさん:2010/12/19(日) 16:13:45
ウィンドウとかボタンがもじゃもじゃしてるんだろ

378 :デフォルトの名無しさん:2010/12/19(日) 16:15:50
不衛生だから剃るか短く切るかしろよ

379 :デフォルトの名無しさん:2010/12/19(日) 16:16:44
HairEffect爆誕

380 :デフォルトの名無しさん:2010/12/19(日) 16:24:23
図星過ぎてネタに走るしかなくなったようだな

381 :デフォルトの名無しさん:2010/12/19(日) 16:32:35
新しい髪型の話題で"頭に毛が生えた程度"と言われてもw

382 :デフォルトの名無しさん:2010/12/19(日) 17:41:38
くだらない比喩は要らないから具体的に反論してよ

383 :デフォルトの名無しさん:2010/12/19(日) 17:47:49
じゃあまずは具体的に何と比較して"毛が生えた程度"なのかを述べた上で具体的な問題点を指摘してよ
UIと比較して毛が生えた程度ってUI作るためのものなんだから当たり前でしょうが

384 :デフォルトの名無しさん:2010/12/19(日) 17:49:01
反論だけは具体的にw

385 :デフォルトの名無しさん:2010/12/19(日) 17:51:19
>>383
>>372を一万回読めよ

386 :デフォルトの名無しさん:2010/12/19(日) 17:54:27
Qtの生産性の低さ

387 :デフォルトの名無しさん:2010/12/19(日) 17:55:40
具体的に

388 :デフォルトの名無しさん:2010/12/19(日) 17:57:04
"UIと比較して毛が生えた程度"は当たり前なので反論できません
windows専用もその通りです
XAMLはデザイナに生成させることができます。少なくともデザイナはQTよりは強力です。
で?

389 :デフォルトの名無しさん:2010/12/19(日) 17:57:48
具体的

390 :デフォルトの名無しさん:2010/12/19(日) 18:00:20
具体

391 :デフォルトの名無しさん:2010/12/19(日) 18:02:15


392 :デフォルトの名無しさん:2010/12/19(日) 18:15:05
お前らのせいで >>372 が出てこれなくなったよ

393 :デフォルトの名無しさん:2010/12/19(日) 20:49:28
アプリ一つ作るのに二つの言語がかかわってるのがうざい

394 :デフォルトの名無しさん:2010/12/19(日) 21:07:33
C#, sql, javascript, html, xml, …
WPF使わなくても普通にこれくらい出てくるじゃん

395 :デフォルトの名無しさん:2010/12/19(日) 21:08:01
>>393
UIをXMLで記述するのは近年の流行り

HTML+CSS+JavaScript+Flash/Silverlight+Perl/PHP/Java/C#/C/Ruby/Python+SQL
最低でも4言語以上必修の環境が大流行してんのに、たった2言語で音を上げる人って(笑)

396 :デフォルトの名無しさん:2010/12/19(日) 21:08:08
普通にってhtmlなんて使わない

397 :デフォルトの名無しさん:2010/12/19(日) 21:09:10
WEB開発なんてしないしアホか

398 :デフォルトの名無しさん:2010/12/19(日) 21:13:43
正規表現は覚えても損しないと思うよ

399 :デフォルトの名無しさん:2010/12/19(日) 21:20:04
XMLとC#

400 :デフォルトの名無しさん:2010/12/19(日) 21:26:17
SQLw

401 :デフォルトの名無しさん:2010/12/19(日) 21:28:18
>>393は口ではそんなこと言ってても体は勝手に
from p in list where p.IsEnabled select p.Textとか書いちゃうんだろ?

402 :デフォルトの名無しさん:2010/12/19(日) 21:38:12
おれならこうかく
list.ForEach(p,p=>p.IsEnabled)

403 :デフォルトの名無しさん:2010/12/19(日) 23:35:24
>>393
あんなの、C# のサブセットをツールが読める形式で書いてるだけ。

404 :デフォルトの名無しさん:2010/12/19(日) 23:38:56
>>393
使いたくなけりゃxaml使わずにcsだけでも書けるぞ。
全力でコーディングしれ。

405 :デフォルトの名無しさん:2010/12/19(日) 23:56:49
C#でUI書くのなんてWinFormsやってるみたいでやだー

406 :デフォルトの名無しさん:2010/12/20(月) 00:03:07
ざむるの文法なんてほかの言語と比べて単純だしな。文法自体は覚えること少ない、
<Button Width="100"/>って書くのを
<Button>
<Button.Width>
100
</Button.Width>
・・・

とか、多少のことでいい。

407 :デフォルトの名無しさん:2010/12/20(月) 00:03:30
いくらMVVMで可能な限りXAMLで書こうと
テンプレートに対応したコントロールを作るときはC#でUI触りまくることになるよ
WinForms以上に汚くて泥臭いコーディングが待っている

408 :デフォルトの名無しさん:2010/12/20(月) 00:41:12
そういうのはコントロールの中に閉じ込められてるというのがポイント。
利用者側が泥臭さに触れなければ、実装側は多少泥臭くても。

でも、UserControlでないカスタムコントロール、もうちょっとXAMLで書けないものかねぇ。

409 :デフォルトの名無しさん:2010/12/20(月) 01:34:39
試してないけどUserControlならMVVMで思う存分書けるんでねーの?
CustomControlはもうちょっと何とかしてほしいねえ。
ユーザー側で好きにテンプレートいじれるようにしたいなら、
XAML側は単純でも動くようにしたいし、そうなると…

410 :デフォルトの名無しさん:2010/12/20(月) 02:14:26
なんだ。ようは、ただのモデルとビューで、
モデルはコードで実装したらビューはXMLで書けるってだけ?

それって、Qtでできるのとは違うの?

411 :デフォルトの名無しさん:2010/12/20(月) 02:47:51
Qtとかどうでもいいから(みんなの本音

412 :デフォルトの名無しさん:2010/12/20(月) 03:02:50
いやQtがVS2010に対応してくれさえすればQtを使うよ
WPFは決定的なものがないから

413 :デフォルトの名無しさん:2010/12/20(月) 03:11:05
C#とVS2010でQt使えたら考えてもいい

414 :デフォルトの名無しさん:2010/12/20(月) 03:29:51
>>410
今時どの環境でも似たような思想になってると思う。
Qt しかり、Flash の MXML+AS3 しかり、HTML+JS しかり。
それの .NET 版。

>>411
WPF 一択。

>>412
うーん、XAML 使えるのだけが WPF じゃないからなぁ。
MS の GUI 開発のノウハウが詰まってるよ、WPF と Silverlight には。

415 :デフォルトの名無しさん:2010/12/20(月) 03:46:05
具体的に

416 :デフォルトの名無しさん:2010/12/20(月) 04:01:49
使えば分かる

417 :デフォルトの名無しさん:2010/12/20(月) 04:09:54
説明できないんだ?

418 :デフォルトの名無しさん:2010/12/20(月) 04:12:30
GUI フレームワークはなぁ、それぞれが重たすぎて、一覧比較できるほど複数のフレームワークに精通するのはしんどく。

むしろ、そんなに Qt がいいというなら、「Qt ならこんなことできるよ」的コード出してほしい。
それに対して、「WPF ならこう」とかコメント付けるのならいける。

419 :デフォルトの名無しさん:2010/12/20(月) 04:28:04
Qt使ってる人が、Qt出汁にしてWPF叩きに利用したりするかね?

420 :デフォルトの名無しさん:2010/12/20(月) 05:00:51
とはいえ、QtにするかWPFにするかで悩んでいる企業も多いんじゃなかろうか。

421 :デフォルトの名無しさん:2010/12/20(月) 05:22:16
マジで?
Windows 環境で Qt ってそこまで競争力あったっけ?
Flash/Flex AIR が競合に上がることはあっても、Qt は検討対象として見たこともないけども。

422 :デフォルトの名無しさん:2010/12/20(月) 05:49:41
クロスプラットホームにする場合はQtも検討する場合があるだろうが、それならFlashかJava。
ネイティブでやらねばならないなんてAdobe、Appleぐらい大きなところだけ。

423 :デフォルトの名無しさん:2010/12/20(月) 06:02:48
俺なら WPF にする前に AIR を検討する

Qt > AIR > WPF or Winforms
※差はあまりない

424 :デフォルトの名無しさん:2010/12/20(月) 08:18:16
その三つの中で生き残るのはどれよ?
ちゃんと理由も一緒に書いてよ

425 :デフォルトの名無しさん:2010/12/20(月) 10:22:00
なんか伸びてると思ったら宗教論争か

426 :デフォルトの名無しさん:2010/12/20(月) 10:58:29
WPF終了

427 :デフォルトの名無しさん:2010/12/20(月) 13:51:10
WPFを技術的な面で批判できないから程度の低い荒らししかできない。

428 :デフォルトの名無しさん:2010/12/20(月) 13:53:26
なんか自分の悩みみたいなレスだな。

429 :デフォルトの名無しさん:2010/12/20(月) 14:21:39
Silverlightで事足りるってことになっちゃったからなあ。

430 :デフォルトの名無しさん:2010/12/20(月) 15:08:24
だからってWinFormsには戻りたくない

431 :デフォルトの名無しさん:2010/12/20(月) 15:17:20
批判してるのは使えない人だけだな。

432 :デフォルトの名無しさん:2010/12/20(月) 15:43:51
と、思いたい人だらけだな。

433 :デフォルトの名無しさん:2010/12/20(月) 15:53:12
だからQtを引き合いに出すような的外れの事をしてしまう。

434 :デフォルトの名無しさん:2010/12/24(金) 04:03:52
xamlとC#を
htmlとjavascriptのようにホームページでも使えたらいいのに

デスクトップアプリ、WEBサイト両対応の言語ってないのかしら

435 :デフォルトの名無しさん:2010/12/24(金) 04:13:19
Javaは?ActionScriptは?SilverLightは?

436 :デフォルトの名無しさん:2010/12/24(金) 09:01:06
JavaScript が VM 層の標準持たなかったのはガンだよなぁ。

437 :デフォルトの名無しさん:2010/12/24(金) 09:17:12
WPFやっててSilverlight知らない人がいるんだな
一般的な知名度はSilverlightの方がずっと上だと思うけど

438 :デフォルトの名無しさん:2010/12/24(金) 09:31:13
javascriptは、巨大なプログラムを作るようには設計されていないから。

439 :デフォルトの名無しさん:2010/12/24(金) 09:50:14
JavaScriptはオフにしましょう!
と言われてた10年前からえらく出世したもんさ。

440 :デフォルトの名無しさん:2010/12/24(金) 09:52:51
その設計時の見通しの甘さがガンというか。
作られた当時、今みたいな使われ方なんて想像もつかなかったし、誰も責めようはないんだけども。
無理な使われ方してる方がガンか。

441 :デフォルトの名無しさん:2010/12/24(金) 11:38:54
JavaScriptなんか本来Viewのコードビハインドどころか
XAMLでトリガやバインディング書いたりする程度のもんだろ

442 :デフォルトの名無しさん:2010/12/24(金) 13:36:44
Silverlightってjavascriptみたいな
htmlファイルに直書きでできるの?
CGIみたいに対応している鯖じゃないと無理なんじゃないの?
って思って全く勉強してなかった

443 :デフォルトの名無しさん:2010/12/24(金) 13:56:51
サーバーは関係ない。クライアントサイドで完結。Flashと一緒。
クライアントでプラグインのインストールは必要。でも.NETはいらんしサイズも極めて小さいしMacでも動く。

444 :デフォルトの名無しさん:2010/12/24(金) 14:02:38
あとSilverlightにはアプリケーションをデスクトップにインストールして
ブラウザの外で動かす機能がある。Flash + AIR + .NET(のサブセット, WPF含む)と思えばいい。

445 :デフォルトの名無しさん:2010/12/24(金) 14:10:00
ほうそれはいいね
でもXAMLみたいなものなんでしょ?
javascriptが使える意義って
何か計算せてプログラムを走らせることなんだけど
それもできるの?

ホームページ上に電卓を作って
入力された数字で計算

なんてことSivlerLightだけでできるの?

446 :デフォルトの名無しさん:2010/12/24(金) 14:12:03
>>445
>ホームページ上に電卓を作って
>入力された数字で計算
できる

ここでぐだぐだ言ってないでVWDダウンロードしてきて作ってみろよ
ただでできるし

それにSL+JSの連携も可能みたいだしな

447 :デフォルトの名無しさん:2010/12/24(金) 14:17:04
できるよ
C#からブラウザにJavaScriptのコードをevalさせることもできるしHTMLのDOM操作も自由自在。
マネージコードの中でやりたかったらIronRubyやIronPythonをアプリに組み込んでしまうことも可能。
数式を計算するだけだったら数式評価のC#で書かれたサンプルなんかたくさん落ちてるから
そういうのを使ってもいいし。

448 :デフォルトの名無しさん:2010/12/24(金) 15:16:57
XAMLは HTML & CSS & JavaScript(を使ったDHTML) をXMLで定義できるようにした物。
コードを書かなくてもXAMLだけでDHTMLみたいな動的なページが作れる。

計算にはデスクトップアプリで一般的なC#やVB.NETを使う。
実行時にネイティブコードにコンパイルされる(JIT)ので動作も速い。

さらにWindows向けの開発環境で独占的なシェアを持つVisual Studioが使える。
無料版のVWD(Visual Web Developer 2010 Express)も提供されているため無料で開発できる。(当然、商用利用もOK)

これに諸々の機能が乗っかったものがSilverlight。

普通はHTMLに貼り付けてFlashみたいにして使うけど、
ブラウザ外実行すればHTMLに張られたSilverlightが"そのまま"デスクトップアプリになる。
クリック3回でインストール/アンインストールの超お手軽配布。(右クリック→インストールする→インストールしていい?OKの3回)

449 :デフォルトの名無しさん:2010/12/24(金) 17:23:02
じゃあ、ちょっとした小物ツールはSilverLightの方がお手軽ってことか
WPFだといきなりexeファイル実行しろって感じだけど
これなら安心感があるな

450 :デフォルトの名無しさん:2010/12/24(金) 21:01:39
更に言えば、WPFでもSilverlightでも無いLooseXAMLなんてのも有る。
.NET Frameworkがインストールされてる必要は有るが
.xamlファイルを、IEでそのまま閲覧する事が出来る。

これって、SEO的にはどうなんだろうね。
クローラーでxaml内のテキストを拾ってくれたりはしないんだろうか。

451 :デフォルトの名無しさん:2010/12/24(金) 21:23:39
なんでお前らいっつも宗教論争してるの?

452 :デフォルトの名無しさん:2010/12/24(金) 21:24:26
>>451
したいのが2chに集まってくる。

453 :デフォルトの名無しさん:2010/12/24(金) 21:27:37
>>450
loose xamlはwpfだろ。

454 :デフォルトの名無しさん:2010/12/24(金) 21:31:47
技術的にはwpfだわな
exeでもxbapでも無いだけで

455 :デフォルトの名無しさん:2010/12/24(金) 23:41:15
SilverlightとFlashなら宗教論争だがWPFとは親子げんかみたいなもの

456 :デフォルトの名無しさん:2010/12/25(土) 01:45:39
全然喧嘩もしてないよ。
にこやかな話し合いだよ。

457 :デフォルトの名無しさん:2010/12/25(土) 02:18:45
南斗鳳凰拳的な伝承の儀だよ。
全てを伝えた後で WPF 死ぬ。
全てを伝えきらないうちは生きる。

458 :デフォルトの名無しさん:2010/12/26(日) 23:19:28
モデルであるIList<Customer> をViewModelのプロパティで
ObservableCollection<CustomerViewModel>としてUIにバインドしようと思うと、
new ObservableCollection<略>(customers.Select(c => new CustomerViewModel(c)))
とかやって自分で変換するの?

459 :デフォルトの名無しさん:2010/12/26(日) 23:36:52
そうやっているが、モデルのアイテムの追加削除の時とか泣きたくなるなw

可能な時は限られているけどこれを回避できることもある。
Modelのリストを直接Viewに公開してしまって、ViewModel的な処理が必要な時は
そのコレクションを管理しているViewModelクラス側で処理すればおk。

460 :デフォルトの名無しさん:2010/12/27(月) 00:21:24
適当なラッパー作って使いまわせばおk
自作が面倒ならObservableListでググるとMs-PLで丁度いいやつが見つかる。

461 :デフォルトの名無しさん:2010/12/27(月) 01:53:28
WPF世界チャンピオン

462 :デフォルトの名無しさん:2010/12/27(月) 13:15:48
亀田はんやないか

463 :デフォルトの名無しさん:2010/12/27(月) 15:46:33
マウスの戻るボタンにMouseBindingを関連づける方法ってありますか?
MouseAction列挙体見ると、右、左、真ん中ボタンとホイールしかないのですが。

464 :デフォルトの名無しさん:2010/12/27(月) 15:49:17
>右、左、真ん中ボタンとホイールしかない
基本はこれでこれ以上はマウス側の独自拡張じゃないの?
増えたボタンも結局はキーボードのショートカットキーのパターンを
送り出してるとかそんなんだよね

465 :デフォルトの名無しさん:2010/12/27(月) 15:58:33
XButton1, XButton2(大抵のマウスは進む/戻るボタンに割り当てる)はWindowsがサポートしてる
MouseAction と XButton1 で検索するといくつか方法が見つかるようだ

466 :459:2010/12/27(月) 17:07:37
>>458-459
ありがとう
どうせ小規模だしモデルは元々全部INotifyPropertyChanged/ObservableCollectionだし
ビューモデル固有の操作もほとんど必要ないのでMVVM無視して
全部 class ViewModel { public Model Model { get; set; } }
でいい気がしてきた


467 :デフォルトの名無しさん:2010/12/28(火) 08:10:04
はじめて4日目だが、 ObservableCollectionがソートできなくてびっくりしたわ

468 :デフォルトの名無しさん:2010/12/28(火) 08:23:18
ソートー使えないな!
相当使えないな!

バカウケ

469 :デフォルトの名無しさん:2010/12/28(火) 09:10:49
今朝は寒いな

470 :デフォルトの名無しさん:2010/12/28(火) 11:19:52
フォームではプロパティやイベントを
選択、マウスオーバーするとの説明が出たのですが
WPFでは出ません。仕様でしょうか??

471 :デフォルトの名無しさん:2010/12/28(火) 11:25:14
デザイナでは出ない

472 :デフォルトの名無しさん:2010/12/28(火) 12:32:47
しようがない

473 :デフォルトの名無しさん:2010/12/28(火) 12:41:06
VSのXAMLデザイナ使ったバインディングの設定、
今まで使い物にならないと思い込んでて放置してたけど意外とまともに使えるね
d:DesignProperties.DataContext要素でダミーのデータを定義してやれば
ちゃんとデザイナからバインドを設定できるし結果をプレビューしてくれる

474 :デフォルトの名無しさん:2010/12/28(火) 13:09:59
だからBlend使えと何度言えば

475 :デフォルトの名無しさん:2010/12/28(火) 15:13:53
買ってくれよ

476 :デフォルトの名無しさん:2010/12/28(火) 16:21:34
いいよ

477 :デフォルトの名無しさん:2010/12/28(火) 17:10:29
なんでVSのプレビュー機能あんなに貧弱なの?


478 :デフォルトの名無しさん:2010/12/28(火) 17:11:43
プレビューは十分だろ
デザイナは貧弱だけど

479 :デフォルトの名無しさん:2010/12/28(火) 19:36:12
Blendが使えないならWPFで作る意味はないな。

480 :デフォルトの名無しさん:2010/12/28(火) 21:39:34
>>467
CollectionViewSource.GetDefaultViewつかえ

481 :デフォルトの名無しさん:2010/12/28(火) 23:01:53
>>479
Silverlightとの相互運用とか、SL→WPFの移植とか

482 :デフォルトの名無しさん:2010/12/30(木) 01:14:02
Webシステムのリプレース案件に年明けから入ることになったんだけど、どうやら
WPF+MVVMバターンでの開発になるらしいです。WPFは簡単なツール作成でちょ
こっと触ったことがある程度。疎結合なデザインパターンは面白そうだけど、MSDN
のMVVMに関する記事読んでも今ひとつピンとこないんですが、年末年始で勉強する
のにいいところ、どっかありませんか?

483 :305 ◆Jzt/EX0TGY8T :2010/12/30(木) 04:14:08
「コマンド」と「MVVMパターン」を理解する − @IT
http://www.atmarkit.co.jp/fdotnet/chushin/introwpf_06/introwpf_06_03.html
[WPF][C#]Model View ViewModelパターンでハローワールド
http://blogs.wankuma.com/kazuki/archive/2009/02/23/168586.aspx
WPF のための MODEL-VIEW-VIEWMODEL (MVVM) デザイン パターン
http://msdn.microsoft.com/ja-jp/magazine/dd419663.aspx
WPFアプリケーションに最適なアーキテクチャ「M-V-VM」とは | グレープシティ株式会社
http://www.grapecity.com/japan/events/handouts/mvvm.htm
【WPF】【Silverlight】 MVVMは各人に合ったレベルで実装すれば良いのではないかと思う
http://blogs.wankuma.com/trapemiya/archive/2009/10/14/182101.aspx

俺がMVVM理解するのに参考にしたサイト
特にリンク先のpdfが参考になった

484 :デフォルトの名無しさん:2010/12/30(木) 11:12:42
>>483
サンクス!!


485 :デフォルトの名無しさん:2010/12/30(木) 12:16:07
Blend評価版試してみてるけど
なんかデザイナ向けというよりVSのデザイナのそのまま兄貴分って感じだなあ
これくらいならVSに組み込めばいいのに
VSでスタイルとテンプレートの編集さえ出来れば要らないと思う

486 :デフォルトの名無しさん:2010/12/30(木) 12:22:11
ビジュアルステートとアニメーションだけはVSじゃ厳しい。

487 :デフォルトの名無しさん:2010/12/30(木) 12:28:38
それは同意
他にもパスでお絵描したりとか、そういう完全にデザインな部分だけに
特化したツールとして分離したほうがいいんじゃないかと思う
ビヘイビアとか完全にプログラミングだし、ごっちゃごちゃな印象

488 :デフォルトの名無しさん:2010/12/30(木) 12:40:07
Blendの使い方解説してる良いサイトある?
なかったら誰か作って!
アフィ貼りまくってくれていいから

489 :デフォルトの名無しさん:2010/12/30(木) 12:53:29
アフィ貼りまくってくれていいから(広告はカットするけどw)

の間違いじゃね?

490 :デフォルトの名無しさん:2010/12/30(木) 14:44:15
回転が出来ません!

Quaternion xz = new Quaternion(new Vector3D(1, 0, 1), degreexz);
A.Rotate(xz);

回転角degreexz[°]でXZ軸でAを回転させたいのですが、どこがおかしいでしょうか。ご指南お願いします。

491 :デフォルトの名無しさん:2010/12/30(木) 14:47:15
マルチなのでスルーで

492 :デフォルトの名無しさん:2010/12/30(木) 20:40:08
マルチってどこ?
Silverlighgtスレかと思ったら違うようだし、
他にXAML/WPfの話題のスレってあったっけ?

493 :デフォルトの名無しさん:2010/12/30(木) 21:21:21
ふらっとC#,C♯,C#(初心者用) Part67

  >481 名前: デフォルトの名無しさん [sage] 投稿日: 2010/12/30(木) 14:45:16
  >回転が出来ません!

  >Quaternion xz = new Quaternion(new Vector3D(1, 0, 1), degreexz);
  >A.Rotate(xz);

  >回転角degreexz[°]でXZ軸でAを回転させたいのですが、どこがおかしいでしょうか。ご指南お願いします。


494 :デフォルトの名無しさん:2010/12/31(金) 10:27:00
とん、ってよりによって、そんなところかいww

495 :デフォルトの名無しさん:2010/12/31(金) 10:46:32
かっこいいUIが作れる以外のメリットが分からん。
生産性が良くなるとも思えんし。UIとロジックの分離なんて設計次第だろ。

496 :デフォルトの名無しさん:2010/12/31(金) 10:51:08
はいはいそうだねー

497 :デフォルトの名無しさん:2010/12/31(金) 11:21:20
でも、その通りだよな・・・

498 :デフォルトの名無しさん:2010/12/31(金) 11:25:34
オサレスキンを使ったWinForm風アプリを作るならその程度だな。
自由度が高くなっても必要としていない人には関係ない。

499 :デフォルトの名無しさん:2010/12/31(金) 13:30:34
自由度って何の?

500 :デフォルトの名無しさん:2010/12/31(金) 13:45:01
プロパティ、イベント、データバインド、UIデザイン…

めんどくさいから全部でいいよ

501 :デフォルトの名無しさん:2010/12/31(金) 13:55:12
3Dやアニメーションができますって
DirectX使えば普通にできるが?

502 :デフォルトの名無しさん:2010/12/31(金) 13:57:40
それが楽に感じるなら、WPF なんて必要ないよ

503 :デフォルトの名無しさん:2010/12/31(金) 14:36:54
Direct3DなんかちょっとしたGUI作るだけでもアホみたいに手間かかるぞ

504 :デフォルトの名無しさん:2010/12/31(金) 14:43:01
QT使えばいい

505 :デフォルトの名無しさん:2010/12/31(金) 15:34:09
Qtスレへどうぞ

506 :デフォルトの名無しさん:2010/12/31(金) 16:05:55
Popupの上にマウスが移動するとPopupが消えるんだけど消えないようにするにはどうすればいいですか?

507 :デフォルトの名無しさん:2010/12/31(金) 16:11:28
親コントロールでMouseLeaveしたらPopupのIsOpen=falseにしてるのが原因でした
失礼しました

508 :デフォルトの名無しさん:2010/12/31(金) 21:09:43
>>499
ボタンの中にチェックボックスを入れてそれをマルチ選択可能なリストボックスに入れるとか
アホなことがし放題。フリーダム!!
もはやどう動くのか想像もつかない状態になるがなw

509 :デフォルトの名無しさん:2011/01/03(月) 08:38:52
webbrowser使おうと思ったら「DocumentはComオブジェクトにキャストして使ってね」とはふざけてるわ
まだ未完成じゃないか(シルバーライトバージョンはちゃんとしているみたい)

510 :デフォルトの名無しさん:2011/01/03(月) 10:25:25
dynamic使うんだよ
気に入らなかったらWinFormsのWebBrowserをWindowsFormsHostで使えばいい
どっちを使おうが空域問題は避けられなくて
SilverlightのようにWebページをパズルにしたりはできない

511 :デフォルトの名無しさん:2011/01/03(月) 21:12:30
ProgressBarの上にProgressBar.Value + "%"を表示させています。
中央に固定位置で表示させるのはTextBlockを2つ(Value値と"%"で2つ)使ってできたのですが
ProgressBar.Widthが変化したときにも自動で中央にする方法が分かりません。
お願いします。

512 :デフォルトの名無しさん:2011/01/03(月) 21:52:09
> 分かりません。お願いします。


何をお願いしたいのか微塵たりとも分からないし、情報が足りなすぎるが
適当なコントロールにHorizontalAlignmentを設定すればいいじゃないか。
あとTextBlockはネストできるし、BindにはStringFormatを指定できる。

513 :デフォルトの名無しさん:2011/01/04(火) 23:36:07
WPF初心者です・・
ViewModelやModelのプロパティ更新時のエラーはIDataErrorInfoを使用してViewに通知するのはいろんなhpを見て分かったのですが
ICommand.Executeでのエラー通知はどうやるのがMVVMパターンなのでしょうか・・・
今のところViewModelにCommandエラー通知専用のプロパティを作ってバインドしてViewに知らせています

514 :デフォルトの名無しさん:2011/01/04(火) 23:40:33
インジケータみたいなもので画面にエラーを示すだけなら
通知というよりViewModelにHasErrorとかErrorMessageとかプロパティ定義してバインドするだけ
ダイアログ出したかったらInteractionRequestでググる

515 :デフォルトの名無しさん:2011/01/05(水) 00:31:16
MVVMやるならまずPrismのドキュメント読むべき
英語だけどこれ以上の情報はないと思う

516 :デフォルトの名無しさん:2011/01/05(水) 18:26:38
以前、Prisnの資料をググール先生頼りで探してみたけど結局どこから見ればいいのやら…
お勧めのサイトがあったら是非とも教えて欲しい

517 :デフォルトの名無しさん:2011/01/05(水) 19:03:02
あきらめてQt使うわ

518 :デフォルトの名無しさん:2011/01/05(水) 19:15:35
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=3453ab2b-2067-41e4-b087-312d8385cf1b&displaylang=en
の中のPrism4.chm

519 :デフォルトの名無しさん:2011/01/05(水) 19:54:01
>>518
トン

520 :デフォルトの名無しさん:2011/01/05(水) 20:10:58
日本語の充実したドキュメントとか、やっぱ欲しいよなあ

521 :デフォルトの名無しさん:2011/01/06(木) 02:32:08
WPF終了っぽいね

522 :デフォルトの名無しさん:2011/01/06(木) 02:40:21
何を根拠に?

WPF が終わるのは、WPF のほぼ全機能が Silverlight に移った時だと思うんだけど。

523 :デフォルトの名無しさん:2011/01/06(木) 09:02:39
WPFはSilverlightのゴールですか
最初からSiliverlight一本でやってたほうがよかったんじゃないの?
二本立てにすることにメリットあったのかな?

524 :デフォルトの名無しさん:2011/01/06(木) 09:06:13
市場成熟、ハードウェアとか他の技術との兼ね合い、投入時期の問題、
色々あるからしょうがない。

例えば、WPF 自身にも、じゃあ、Forms なんて出すなよって思うわけだけど
WPF が完成するまで .NET Framework のリリース遅らせれるかって言ったら、
そんなことしてたら10年近く VS の新品出なかったのよ。
とりあえず Win32 API をラップしただけの Forms 必要だったでしょ。

525 :デフォルトの名無しさん:2011/01/06(木) 15:09:54
VisualStudioでTextBoxのKeyDownの処理をしようとすると
Window.xaml.csにTextBox_KeyDown(object sender, KeyEventArgs e) が作られますが
これをWindow.xaml.csとは別のcsファイルに書く方法ってありませんか
interactivity.dllのEventTriggerをつかうとKeyDownイベントでCommandを呼べるようにはできましたが
CommandParameterにKeyEventArgsを渡す方法が分かりませんでした

526 :デフォルトの名無しさん:2011/01/06(木) 16:19:01
対象の要素のKeyDownイベントにアタッチしてコマンドを呼び出すビヘイビアを作る
System.Windows.Interactivity.Behavior<UIElement>あたりから継承

527 :デフォルトの名無しさん:2011/01/06(木) 16:47:20
WPFの前に2chがやばそうだな
ニュー速なんだよあれw

528 :デフォルトの名無しさん:2011/01/06(木) 17:20:54
>>526
ありがとう
Blendからもポトペタでできるようになりました

529 :デフォルトの名無しさん:2011/01/06(木) 23:51:32
Silverlightは.Net使わないネイティブコードで表示早いんだっけ?
WPFは.Netネイティブだから表示遅いし重いんだっけ?

530 :デフォルトの名無しさん:2011/01/06(木) 23:56:38
Silverlight は、GPU(Graphic Processing Unit)を使いませんが、WPF は GPU を使って高速に描画できます。

531 :デフォルトの名無しさん:2011/01/06(木) 23:56:56
英語でおk

532 :デフォルトの名無しさん:2011/01/06(木) 23:59:22
いやSilverlightの方が描画はもっさり。一応SilverlightもGPU使ってるけど
WPFよりもかなり消極的でキャッシュも控えめで描画面積が広くなると目に見えて遅くなる。
WPFはフレームワーク自体はC#で書かれてるけど描画はネイティブだよ。

533 :デフォルトの名無しさん:2011/01/07(金) 00:17:11
それでなんでWPFなくなってSilverlight残るなんてこといってる奴がいるの?

534 :デフォルトの名無しさん:2011/01/07(金) 00:27:58
http://codezine.jp/devsumi/2010/report/10/
ここにはSilverlightのが表示早いみたいに書かれてるけど。

535 :デフォルトの名無しさん:2011/01/07(金) 00:35:43
それDataGridコントロールに限った話。
DataGridはもともとSilverlight向けに作られたのでWPFでの調整が十分にできてないだけ。

536 :デフォルトの名無しさん:2011/01/07(金) 23:20:31
>>529
描画に関しては、まだ比較計測していないが
ループ処理は、WPFの方が10倍近く早かった。

537 :デフォルトの名無しさん:2011/01/07(金) 23:37:03
ループ処理って何?

538 :デフォルトの名無しさん:2011/01/08(土) 00:03:51
>>537
for文とかwhile文とか。

539 :デフォルトの名無しさん:2011/01/08(土) 00:10:30
そんなんで10倍も差が出るわけないだろw
.NET FrameworkのCLRとSilverlightのCLRはほぼ同じもの
若干Silverlightの方が最適化が控えめらしいが10倍はどう考えてもありえない

540 :デフォルトの名無しさん:2011/01/08(土) 00:19:01
憶測で物を考えるのが君らの悪い癖だ

541 :デフォルトの名無しさん:2011/01/08(土) 00:34:27
試してみたけどそんなに変わらなかったよ
文字列連結は誤差範囲、単純なループ+数値の加算だと1〜2倍くらい

542 :デフォルトの名無しさん:2011/01/08(土) 01:07:00
.NET Framework と .NET Compact Framework だと、
ガベコレの性能が全然違うんで、
ループの奥でインスタンス生成とかしてるとパフォーマンス10倍変わる可能性ある。

Silverlight の CLR は優秀だったはず。
もしかすると、Silverlight for Windows Phone 7 の話だとすると、
WP7 は Compact Framework ベースなので、確かに遅そう。

543 :デフォルトの名無しさん:2011/01/08(土) 12:03:50
実験してみるか。

private void button1_Click(object sender, RoutedEventArgs e)
{
  DateTime timer = new DateTime();

  timer = DateTime.Now;
  for (uint i = 0u; i < 4294967295u; i++) ;
  MessageBox.Show((DateTime.Now - timer).ToString());
}

コードはこれで良い?
(xamlにボタン1個置いて、ボタン押したら計測開始の想定で)

544 :デフォルトの名無しさん:2011/01/08(土) 12:24:51
全く差は無かった

545 :543:2011/01/08(土) 12:27:50
Visual C# 2010 Express
  [ Ctrl ] + [ F5 ] で実行
    1回目 : 1.3660000 (秒)
    2回目 : 1.3610000 (秒)
    3回目 : 1.3620000 (秒)

  [ F5 ] で実行
    1回目 : 10.2020000 (秒)
    2回目 : 10.1960000 (秒)
    3回目 : 10.1970000 (秒)

Visual Web Developer 2010 Express
Silverlight 4.0.51204.0
OOB実行 (ブラウザで変わるとは思わないけど、念の為)
  [ Ctrl ] + [ F5 ] で実行
    1回目 : 10.7090000 (秒)
    2回目 : 10.6980000 (秒)
    3回目 : 10.7320000 (秒)

  [ F5 ] で実行
    1回目 : 10.7040000 (秒)
    2回目 : 10.6950000 (秒)
    3回目 : 10.7140000 (秒)

OSはWindows Vista + SP2 (x86)
CPUはIntel Core2 Extreme X9650 @3.00GHz

546 :デフォルトの名無しさん:2011/01/08(土) 12:40:52
それデバッガ動いてるんじゃないの?
こっちだと[Ctrl]+[F5]で両方2秒前後で差は無かったよ
デバッグ有効だと両方9秒程度
VWD2010, Silverlight 4.0.51204.0
XPSP3(x86), PenD 3.00GHz
生成されたテストページを直接ブラウザで開いたらどうなる?

547 :543:2011/01/08(土) 12:47:18
>>546
>生成されたテストページを直接ブラウザで
それもやってみたんだけど、やっぱりSL4だと10秒以上掛かった。
IE8とGoogle Chromeで、1回ずつ試行。

こっちの環境が何かおかしいのかな。

548 :デフォルトの名無しさん:2011/01/08(土) 13:35:13
System.Drawing.Bitmap から BitmapSource を生成してファイルを保存しているのですが
何10ヶも繰り返していると OutOfMemoryException が発生してしまいます。
海外サイトでも取り上げられていて、同じように実装しているのですがどうしても
発生してしまいます。
何か問題ありますでしょうか?

[DllImport("gdi32.dll")]
public static extern bool DeleteObject(IntPtr hObject);

string[] srcFiles = Directory.GetFiles(srcFolder, "*.jpg");
Array.Sort(srcFiles);

if (!Directory.Exists(dstFolder))
Directory.CreateDirectory(dstFolder);

foreach (string name in srcFiles)
{
using (Bitmap srcImage = new Bitmap(name))
{
string dstName = Path.Combine(dstFolder, Path.GetFileName(name));
IntPtr ptr = srcImage.GetHbitmap();
BitmapSource bs = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
ptr, IntPtr.Zero, Int32Rect.Empty,BitmapSizeOptions.FromEmptyOptions());

DeleteObject(ptr);
bs = null;
GC.Collect();
}
}



549 :デフォルトの名無しさん:2011/01/08(土) 14:23:43
GC.Collect入れてみたら

550 :デフォルトの名無しさん:2011/01/08(土) 15:13:31
>>549
最後の方に入ってるな。

551 :デフォルトの名無しさん:2011/01/08(土) 15:19:13
とりあえず何がリソースリークしているか調べたら?

552 :デフォルトの名無しさん:2011/01/08(土) 16:47:41
それよしも例外投げたメソッドはどいつだよ

553 :デフォルトの名無しさん:2011/01/08(土) 16:56:11
OutOfMemoryExceptionだから実行エンジンが投げた非同期例外じゃないの
どこからともなくやってきて問答無用で即死の類

554 :デフォルトの名無しさん:2011/01/08(土) 16:58:14
昔のBitmapクラスはロードしたときに投げたりするぞ
拾おうと思えば拾えるのもあるからやれ

555 :デフォルトの名無しさん:2011/01/08(土) 17:02:34
それはImage.FromFileじゃなかったか。
Image.FromFileは4.0でもOutOfMemory投げてる。
頭おかしい。

556 :デフォルトの名無しさん:2011/01/08(土) 18:50:38
皆様お返事ありがとうございます。

OOM 例外が発生するのは、
srcIamge.GetHbitmap();
です。
DeleteObject(ptr);
で解放しており、BitmapSource をコメントアウトすると OOM 例外は発生せず何事もなく終了します。
GetHbitmap で取得したオブジェクトは DeleteObject で解放しているようなのですが、
BitmapSource が間に入ると解放されずに保持しっぱなしのようです。
BitmapSource に Dispose がないので、代わりに null を代入して GC.Collect() しているのですが・・・



557 :デフォルトの名無しさん:2011/01/08(土) 19:54:23
たぶんこれじゃね
http://www.google.co.jp/search?hl=ja&q=CreateDIBitmap+%E3%83%A1%E3%83%A2%E3%83%AA%E4%B8%8D%E8%B6%B3&aq=f&aqi=&aql=&oq=&gs_rfai=

CreateDIBitmapってのはDIB(GDI+のイメージオブジェクトの中身)からDDBを作るもの

558 :デフォルトの名無しさん:2011/01/08(土) 20:02:35
そもそもの話をするとなんで一度Bitmapに読み込んでいるのか気になるところではある。
BitmapImageに読んじゃ駄目なのかなぁ。

559 :デフォルトの名無しさん:2011/01/08(土) 20:17:23
>>557
BitmapSource をコメントアウトして、GetHBitmap と DeleteObject だけだと
メモリは問題なく解放されているんですよ。
BitmapSource を HBitmap から作成すると解放されませんので、
BitmapSource あたりにに問題があると思います。

>>558
System.Drawing.Bitmap でいろいろやった後に、BitmapSource しなければ
ならない事情が。


560 :デフォルトの名無しさん:2011/01/08(土) 20:27:29
>>559
これだな。Framework のバグ。
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=410590&wa=wsignin1.0

>>558
そういう話の展開はあまり意味ないぞ。
何にもコメントできなくなったやつが、意味もなく言い出すことだ。

561 :デフォルトの名無しさん:2011/01/08(土) 20:27:55
BitmapSourceの中身はDIBのはずだがなあ

562 :デフォルトの名無しさん:2011/01/08(土) 21:02:48
てかなんで直接WPFで読み込まないのと言いたい。
マルチスレッドで扱う方法を知らないという落ちじゃないだろうな?

563 :デフォルトの名無しさん:2011/01/08(土) 21:13:24
WPFは使ってないんじゃないの
WPFのエンコーダが使いたいだけとか

564 :デフォルトの名無しさん:2011/01/08(土) 21:18:22
素直にBitmapをロックしてBitmapSource.Createでコピーしたほうがよくね

565 :デフォルトの名無しさん:2011/01/08(土) 22:10:33
>>560
バグですか。これは当分使える見込みなさそうですね。

>>563
そうなんです。WPF のエンコーダであれば PNG 8bit などの保存ができますので。

>>564
こちらの方法で試してみましたが、結果はほぼ同じでした。
http://www.netframeworkdev.com/windows-presentation-foundation-wpf/createbitmapsourcefromhbitmap-dpi-85977.shtml

上の方に書いた方法ですと 2G のメモリを食い尽くして OOM が発生していましたが、こちらの方法であれば正常に終了しました。
しかしタスクマネージャで使用メモリを見ていると、実行を開始すると使用メモリが 20MB からどんどん上昇し、
600MB まで達したところで、ちょうど実行が終了しました。
この方法で OOM は出ませんでしたが、実行中はメモリ使用量が異常に上昇してしまう現象は同じようです。
しかしこのメソッドの実行終了後、使用メモリは一気に元の20MB に戻りましたので、GC は何らかの形で動いているようです。


566 :デフォルトの名無しさん:2011/01/08(土) 22:40:46
WPFで作り直しちゃいなよ!

567 :デフォルトの名無しさん:2011/01/09(日) 09:42:54
ListViewについて教えてください。Wpfの奴は、例えばスクロールして4項目目が1番上に表示されている状態で項目入れ替えると
Viewが更新されても4項目目が一番上に来るみたいですね
そこでデータソートして1番目のアイテムをScrollIntoViewで一番上に表示させたらいいと思ったんですが、CollectionViewSource
使ったソートは項目自体を並び替える訳じゃないようで、一つ目の項目取り出しても最初に入れた項目が出てきます

ListViewのスクロールさえリセットできたら良いんですが、何か良い方法はありませんか?

568 :デフォルトの名無しさん:2011/01/09(日) 14:29:41
SelectedItem 差し替えかな。

569 :デフォルトの名無しさん:2011/01/10(月) 15:00:59
VIBlendのEditors.dllのコントロールは非商用なら
自分のアプリにつけて配布しちゃっていいってことだよねー
英語できないとだめだなぁ・・

570 :デフォルトの名無しさん:2011/01/15(土) 18:41:19
コマンドラインでもformsでも出来るのに、WPFだとコードコントラクトの静的チェックができない
検索してもさっぱりだし、うちの環境が悪いのか、みんなWPFなんて試してもいないのかもわからない

571 :デフォルトの名無しさん:2011/01/15(土) 19:12:15
WPFの利点ってどんなですか
俺Formアプリで十分作りやすいんだけど
わざわざめんどうなXML編集するほどのメリットがある感じ?

572 :デフォルトの名無しさん:2011/01/15(土) 19:23:51
原始人にインターネットの必要性を説くようなもの
まず自分で触れ

573 :デフォルトの名無しさん:2011/01/15(土) 20:04:28
>>571
全体的に API 洗練されてる
コントロール類とほとんど同じノリでベクター画像、3D、動画等混ぜ込める
ビューとモデルの分離しやすい

等々。

574 :570:2011/01/15(土) 21:08:39
xaml処理でpartialが自動生成されるwindow派生クラスの中だと全無視、それ以外だと反応するみたい
フォーラムでg.i.csがどうとか言ってたのが完全にfixされてないのか

575 :デフォルトの名無しさん:2011/01/16(日) 01:44:29
ExpressionBlendってSilverlightとは仲良いみたいですけど
なんてWPFと仲悪いんですか?

576 :デフォルトの名無しさん:2011/01/16(日) 01:54:09
どこら辺が仲悪いんですか?

577 :デフォルトの名無しさん:2011/01/16(日) 02:08:17
俺には仲がいいように見えるけど、あれはマヤカシなのか?

578 :デフォルトの名無しさん:2011/01/16(日) 02:09:17
>>577
実は仮面夫婦なんですよ

579 :デフォルトの名無しさん:2011/01/16(日) 03:11:58
>>578
それは、カン・チョクト夫妻な

580 :デフォルトの名無しさん:2011/01/16(日) 04:11:08
実際、VSよりも数段WPFと仲良いしな

581 :デフォルトの名無しさん:2011/01/16(日) 10:05:36
でもVSとBlendは仲良くないよ
全く同期されてなくて 片方で編集→もう一方でプロジェクトをリロード を繰り返すことになる

582 :デフォルトの名無しさん:2011/01/16(日) 10:15:35
両方で同時に開いてる時とか、「読み込みなおしますか?」の警告ある方がありがたいと思うけども。

583 :デフォルトの名無しさん:2011/01/16(日) 11:00:00
XAMLテキストエディタはVSの方が上だよね
BlendはバインディングやSetterやxmlns:などで全然インテリセンスが効かない
必要ないということなんだろうけど、たまにどうしてもBlendで直接XAML編集したいときにイラっとする
変更がバッティングしたりして面倒だし、どうせ完全にプログラミング寄りで
どう考えても純粋なデザイナーが使うもんじゃないんだからVSに統合でいいよ

584 :デフォルトの名無しさん:2011/01/17(月) 07:47:37

コマンドでパラメータを渡す時に、複数のエレメントの値をバインドして渡す場合は
どの様にしたらいいんでしょうか?


585 :デフォルトの名無しさん:2011/01/17(月) 20:18:33
ListBoxとScrollViewer(x:Name="PART_ContentHost")から成るカスタムコントロール(Textboxを継承、WTextBoxとする)を作成しているのですが
煮詰まっています。

わからないのは以下の3点です。
1.ListBoxのItemSourceへのデータバインドの方法(XAMLおよびコード)
以下が例です。(ListBoxに表示するのはNAMEのみ)
 ID/NAME
1 晴れ
 4 曇り
 5 雨

2.WTextBoxに依存関係プロパティ(w)を設定する。
 このとき、 デザイナよりコントロールを配置し、WTextBox.w = 4
を設定した場合、Listbox の ID と一致する項目が選択されているようにするには?

3.ListBoxで選択した項目のIDをWtextBox.w と同期する方法

どなたか親切な方、よかったら教えてください。

 

586 :デフォルトの名無しさん:2011/01/17(月) 20:55:39
>>584
1.渡したいデータをプロパティとして持つCommandParameter用の型
2.MultiBindingからその型に複数の値をセットするConverter
を作って、それを使ってCommandParameterにBinding。ググれば例は出てくると思う。

>>585
丸投げは関心しない。最低限の基礎を理解してからもう一回出直すことをお薦めする。

587 :デフォルトの名無しさん:2011/01/17(月) 21:12:01
>>585
そういうコードを書く。コードからコントロールを触るためにTemplatePart付けたんだろ?
OnApplyTemplateの中でFindName("PART_ContentHost")として取得したら
あとはコードから触り放題。イベントハンドラも使いまくる。Generic.xamlには見た目以外のことは一切書かない。
カスタムコントロールはそういうもん。

588 :デフォルトの名無しさん:2011/01/17(月) 21:34:16
要素をよくいじるようなのは俺ならユーザーコントロールで済ましちゃうなー。
そして大小問わずなんでもユーザーコントロールで部品化してメインのウィンドウにペタペタ貼ってる。

ページっていうのがあるけどこれはWPF/Eで使うイメージ。普通のWPFアプリでは使ってるの見ないな。

589 :デフォルトの名無しさん:2011/01/17(月) 22:07:53
>>586-588
レスありがとう。

1がわからないから2も3も…だと思っています。

Generic.xamlについて
<ListBox ItemSource = "{Binding}">
みたいにかいて、
コード側で???(´・ω・`)
コード側からListBoxのx:Nameが直に指定できないから
FindNameでみつけてやるべくOnApplyTemplateで書きなさいってことですか><

あー ワカラナイ><


590 :デフォルトの名無しさん:2011/01/17(月) 22:29:55
結局ComboBoxでしょ?
ComboBoxのテンプレートを作れば十分なはず

591 :デフォルトの名無しさん:2011/01/19(水) 02:50:41
>>548
IntPtrをZeroにしていない終了じゃね?

592 :デフォルトの名無しさん:2011/01/19(水) 19:30:13
CheckListBoxをカスタムコントロールで作っているんですけど、
コードでDataContextを設定したいときはどこに書けばいいんですか?
OnApplyTemplateの中に書いても、Loadedに書いてもバインドできたけど、
item.clearしないとだめっぽい。

あと、さらにGeeric.XamlでListBox.ItemContainerStyleのTemplateを書いたら、
止まってしまいました。なぜ???


593 :デフォルトの名無しさん:2011/01/19(水) 19:32:10
まずカスタムコントロールでDataContext使うのはおかしい
UserControl使う

594 :デフォルトの名無しさん:2011/01/19(水) 22:21:21
ListView使ってファイラー作ってるんだが、気付くとアイテムを選択するとその後にカラムサイズが変更不可になっちまった
ListView自体にカラム固定機能は元々存在しないし、無理矢理固定する方法もあるらしいが、それによる副作用も見られない
まあ大した不具合でもないけど理屈が判らず気持ち悪い
特別なことと言えばAPICodePackのGlassWindowその他を使っている程度
デバッグをするヒントが判れば嬉しいのですが

595 :デフォルトの名無しさん:2011/01/20(木) 00:48:58
>>592
どういう状態なのか良く解らんが、
カスタムコントロールよりもListBoxのItemTemplateでCheckBox追加するだけで十分じゃないか?

596 :デフォルトの名無しさん:2011/01/20(木) 04:18:53
Blendのエディタくらい外注しないで自前でつくってほしいよなぁ

597 :デフォルトの名無しさん:2011/01/20(木) 23:26:20
GridのDefinitionのWidthやHeightで*を指定したときみたいに、
StackPanelでコントロールを引き延ばす事って可能ですか?
Gridは記述が増えて面倒ですし、DockPanelは一番最後の要素のみみたいなので・・・orz

598 :デフォルトの名無しさん:2011/01/21(金) 03:43:38
>>597
stackpanelでコントロールを引き伸ばすってどういうこと???stackpanelは子の最
大サイズに合わせて自分を規定するのが原則でサイズ制御の仕組みはないと思うんだ
けど。uniformgridみたいなことをしたいのかすら?

599 :デフォルトの名無しさん:2011/01/21(金) 08:52:56
.net3.5とBlend3 SDKの
Microsoft.Expression.Interactions.dll
System.Windows.Interactivity.dll
じゃIntellisenseに出てこなかったんですが、
CallMethodActionってBlendを購入しないと使えないんですか?

ChangePropertyAction, GoToStateAction, LaunchUriOrFileAction, RemoveElementAction
は使えるみたいです。

600 :デフォルトの名無しさん:2011/01/21(金) 08:59:19
Expression Blend を買わなくても、Blend SDK っていうのが無料でダウンロード可能。

601 :デフォルトの名無しさん:2011/01/21(金) 10:07:25
>>600
Blend SDKは入れてるんですがCallMethodActionだけ使えないんですよね。
SDKをインストールしなおしてもだめで。

Blend3じゃなくてBlend4以降じゃないとダメとかあるのかな。

602 :デフォルトの名無しさん:2011/01/21(金) 11:43:31
3は知らんが少なくとも4SDKには入ってる
TriggerActionはあるんだったら、継承してリフレクションでメソッド呼び出すだけだから自作しても一瞬だろ

603 :デフォルトの名無しさん:2011/01/22(土) 08:51:47
依存関係プロパティって
Public Shared 以外で宣言してもいいのですか??


604 :デフォルトの名無しさん:2011/01/22(土) 10:38:24
なんのために?

605 :デフォルトの名無しさん:2011/01/22(土) 10:48:05
privateにするのは構わない
インスタンスメンバにするのは重複したりメモリリークしたりするからダメ

606 :デフォルトの名無しさん:2011/01/22(土) 19:54:27
スレ違いでしたらごめんなさい。
MACでも動作するWebアプリを作りたいのですが、GUIは何で作るのが
おすすめでしょうか?ベテランさんアドバイスをお願いします。

607 :デフォルトの名無しさん:2011/01/22(土) 19:59:19
スレ違い。

608 :デフォルトの名無しさん:2011/01/22(土) 20:02:59
WPFアプリケーションプロジェクトにUserControlを追加して、
UserControlにボタンを1個配置して
window1.xamlにclr-namespaceを設定してUserControlタグを配置しただけのコードなんだが
VS2008+C#では動くのに
VS2008+VBでは参照エラー
調査しようと思って家でVS2010+VBを入れてテストしたら普通に動いた
これじゃ会社の環境で開発が進まないんだけど
似たような現象にあった人はいませんか?

609 :デフォルトの名無しさん:2011/01/22(土) 20:12:06
ViewModel作ってバインドする時、プロバティウインドで弄れるようにするにはどうしたら良いんですか?
いやあ、アレ一回使ってみたいだけなんですが

610 :デフォルトの名無しさん:2011/01/22(土) 20:13:31
それを見たことはないが、エラー内容を晒さないと誰もアドバイスできないと思う。
もしくはエラー内容で自分でググる。

611 :デフォルトの名無しさん:2011/01/22(土) 20:20:22
>>609
d:DataContext属性にダミーのViewModelのインスタンスを指定する
Blendならサンプルデータも自動生成してくれるんだけどね

612 :デフォルトの名無しさん:2011/01/22(土) 23:52:23
デザイナ上で、データセットをドラッグアンドドロップすると次のようなコードが作成されますが
<my:dbDataSet x:Key="DbDataSet" />
<CollectionViewSource ... Source={StaticResource DbDataSet}}"/>
数カ所にあるDbDataSetをDbDataSet1に変えると動作しなくなります
このDbDataSetというKeyの名前は自分で決められるわけではないのでしょうか?

613 :デフォルトの名無しさん:2011/01/23(日) 03:08:38
>>606
Mac OS みたい見た目にならないが
マルチプラットフォームなRIAならSilverlightでできるよ

614 :デフォルトの名無しさん:2011/01/23(日) 04:41:39
>>613
Silverlightを使用すると、Win上とMac 上では見た目が異なるということでしょうか?
web開発素人なものですみません。。

615 :デフォルトの名無しさん:2011/01/23(日) 08:58:26
Mac上で動かしても、Winアプリみたいな外観になるって事では?
(まあ、見た目なんて好きに弄れるけれども)

616 :デフォルトの名無しさん:2011/01/23(日) 09:12:26
>>615
ありがとうございます。
Mac上でも見た目同じであれば、ありがたいです。
Macがまだないもので、テストできず色々調べているのですが
なかなか思う情報に辿り着かない為困っています。。

617 :デフォルトの名無しさん:2011/01/23(日) 09:20:06
ここはSilverlightスレと見てる人ほとんど同じだから向こうでやれよ
IISならSilverlightの前に普通にASP.NETじゃダメなのか?

618 :デフォルトの名無しさん:2011/01/23(日) 09:34:30
>>617
ありがとうございます。
みてる方ほとんど同じだったのですね(^^;;
デザインもプログラマーが作るのであれば
Silverlightの方がいいのかと思いまして。
ビジネスロジックはASP.NETになると思いますが。。

619 :デフォルトの名無しさん:2011/01/23(日) 20:40:39
InkCanvasをいろいろいじってるんだけど、
塗りつぶしって可能ですか?
お絵かきソフトでよく見るような、インクバケツをひっくり返したアイコンで
閉じた領域を指定した色で塗りつぶしたいのですが。。
もしサンプルとかご存じであれば、教えてください。


620 :デフォルトの名無しさん:2011/01/23(日) 21:58:25
WPFのShapeとかってベクターグラフィックスだからなぁ。
ビットマップ系のお絵かきソフトとは根本的にやってること違う。

621 :デフォルトの名無しさん:2011/01/23(日) 22:02:06
自分でPath追加する

622 :デフォルトの名無しさん:2011/01/26(水) 21:32:04
省略してますがx:Keyを指定しているとして
Resourcesはコレクションなので
1.これはコンパイル出来るのはわかります
<Window.Resources><ブラシ1/><ブラシ2/></Window.Resources>
2.これもコンパイル通ります
<Window.Resources><ResourceDictionary/></Window.Resources>

3.しかし、これがコンパイル通らないのは何故なのですか?エラーメッセージ意味不明
<Window.Resources><ブラシ1/><ResourceDictionary/></Window.Resources>

ResourceDictionary使うなら2の形式を常につかえってことでしょうか

623 :デフォルトの名無しさん:2011/01/26(水) 21:57:25
1は下の省略形だったと思う
<Window.Resources>
<ResourceDictionary>
<ブラシ1/>
<ブラシ2/>
</ResourceDictionary>
</Window.Resources>

ResourceDictionaryを複数使うときはMergedDictionariesに設定したような気がする

624 :デフォルトの名無しさん:2011/01/26(水) 22:33:00
>>623
ありがとう、理解出来ました。
MergedDictionariesでどちらもリソースとして含める事ができました

623の指摘で、ResourcesのクラスにContentProperty属性が付いてるのかと思いましたが
違いました。さらに調べるとここに答えがあって
ttp://msdn.microsoft.com/ja-jp/library/ms788723.aspx
Resourcesクラスが実装しているIDictionaryが省略を可能にしてるんですね

625 :デフォルトの名無しさん:2011/01/29(土) 10:36:23
エロい人いたら教えて下さい。
もしかしてUserControlってバインディングと相性悪い?


626 :デフォルトの名無しさん:2011/01/29(土) 10:44:44
いいえ
ViewModelにバインドするときはだいたいUserControlにバインドする
アプリケーション固有のビューを作るためのもので、汎用的なコントロールを作る際には使わない

627 :デフォルトの名無しさん:2011/01/29(土) 11:07:41
UserControlは画面の一部分を切り出したものなので
特定のVMとBindでベッタリくっついた状態で機能する、
CustomControlはVMは外部から任意のものをセットする前提で
VMなしでも単独で機能する、という認識でいいのだろうか。

なんかまわりを見ていると人によってこの境界がマチマチな気がする。

628 :デフォルトの名無しさん:2011/01/29(土) 11:19:31
ここではMVVMはもう上のレイヤの話なのでひとまず忘れてくれ。
UserControlは振る舞いとビューを分離できない。
カスタムコントロールは振る舞いとビューが分離されていて、必要ならビューを差し替えることができる。
ここでいうビューはMVVMのViewのことじゃなくて、たとえばコントロールの文字列型のプロパティを
TextBlock使って表示するかボタンのキャプションにするかというようなUIの実装の詳細という意味で、
端的にはコントロールテンプレートのこと。振る舞いはコードビハインド。

629 :デフォルトの名無しさん:2011/01/29(土) 14:43:02
トン。どちらもただのコントロールで提供機能が違うだけなのね。


630 :デフォルトの名無しさん:2011/01/29(土) 19:21:18
スレ違いかもしれないんですが、
MessageBox的なものを自分で作りたいんですが、
はい/いいえ/再試行/キャンセルなどを言語環境に合わせて変えたい場合どうすればいいですか?
自分で言語設定ファイル置くんじゃなくて、インストールされてる言語パックなんかから取ってきたい。
メッセージボックスで使われている語彙だけでいいんです。


631 :デフォルトの名無しさん:2011/01/29(土) 21:30:18
そういう機能はOSに無い

632 :デフォルトの名無しさん:2011/01/29(土) 21:35:42
一旦MessageBox.Showしといてフックでテキスト横取りした上で表示前に殺すとか思いついたが
そもそも実現できるだろうか

633 :デフォルトの名無しさん:2011/01/29(土) 22:18:37
これでいいんじゃない?
http://ideone.com/yf6La

634 :デフォルトの名無しさん:2011/02/01(火) 10:56:12
MessageBox.Show ダイアログのボタンの見た目がテーマと異なるもんだから、「Windows Aero を適用しているのにクラシックなボタン」という中途半端なのをどうにかしてほしいのだが、
マイクロソフトはいつになったらそういう細かい部分を改修してくれるんだろう。
機能的には不備はないんだけれど見た目がね。人は見た目が9割。

635 :デフォルトの名無しさん:2011/02/01(火) 13:17:14
お前が無知なだけ

636 :デフォルトの名無しさん:2011/02/01(火) 13:17:57
ちょっと調べりゃ解決できるこったろうに

637 :デフォルトの名無しさん:2011/02/01(火) 16:46:50
説明が下手でMVVMもろくに理解出来てないのですが、
例えばあるネットワークアプリにおいて、コアの機能(例えば通信等)を別のライブラリに置くとすると、
モデルとなるものは、ライブラリの中に書くと思いますが、
この場合はINotifyPropertyChangedやコレクションはObservableCollection(or INotifyCollectionChanged)を予め使い、モデルを実装した方が
GUIとの連携の際楽かと思いますが、この実装は正しいでしょうか?
(予め実装するのはなんとなく気持ち悪い気はしますが・・・)
またその場合に、対応するVisualModelを作成せず、直接MainWindow等のViewModelへモデルのインスタンスを置くのは
微妙な実装ですかね?

あとライブラリが自分の作った物では無い場合は、ラッパークラス(対応するVisualModel)を作ったりするのでしょうか?
変更通知イベント等を捕まえるのかな・・・

638 :デフォルトの名無しさん:2011/02/01(火) 19:57:50
>>518の公式ドキュメントによると、
モデルがINotifyPropertyChangedやINotifyCollectionChangedを実装している場合は
わざわざViewModelでプロパティを全部ラップしなくてもそのまま公開してViewとバインドしても構わない

639 :デフォルトの名無しさん:2011/02/02(水) 01:02:48
>>638
レスありがとうございます
なるほど、>>518のドキュメントってそういう事等が書いてあるんですね・・・と思ったけど英語・・・orz
時間あるときにでも頑張って呼んでみたいと思います!

640 :デフォルトの名無しさん:2011/02/02(水) 05:13:15
>>637
ネットワークをコア機能と考えてる時点でもうmvvmとは離れてるんジャマイカ?

prismはべつにmvvmのフレームワークでもなんでもなくて、コンパウンド・アプリケーションのフレームワークが最近は
mvvmもサポートしてますよ〜ってだけだから、それを参考にしてmvvmのベスト
プラクティスでございますっていうのは、よく考えたほうがいいぞ。


641 :デフォルトの名無しさん:2011/02/02(水) 20:02:19
質問です

コンボボックスを継承したカスタムコントロールを作ったんですけど、
デザイナでそのコントロールを置くと、中のアイテムが表示されません。
デザイナでもアイテムが表示されるようにするにはどうすればいいんですか?




642 :デフォルトの名無しさん:2011/02/04(金) 02:00:47
そもそも継承するという発想自体がアウト。

テンプレートやビヘイビアで改造するのが流儀なんですが・・・

643 :デフォルトの名無しさん:2011/02/04(金) 07:13:19
>>642
継承元のコンボボックスもカスタムコントロールなんです。


644 :デフォルトの名無しさん:2011/02/04(金) 07:33:47
ユーザコントロールは、元の機能にない機能を追加してる場合に使う
もしその継承元のコンボボックスが見た目程度しか変更してないのであれば
そんなコントロールを使うのはやめて
WPFのコンボボックスの見た目をテンプレートで変えるコードに書き直せばいい
時間が許せば。

645 :デフォルトの名無しさん:2011/02/04(金) 13:39:42
時間「絶対に許さない」

646 :デフォルトの名無しさん:2011/02/04(金) 20:48:11
万一、コントロールのバグが発覚した時の対策なんかに
取り敢えず継承だけして、機能を一切追加せずに使うとかは?

647 :デフォルトの名無しさん:2011/02/04(金) 20:50:55
意味なし
最近は.NETでもJavaでも他のでも「継承は悪」が基本

648 :デフォルトの名無しさん:2011/02/04(金) 21:24:59
寝言はWPFの継承ツリーを見直してから言え

649 :デフォルトの名無しさん:2011/02/04(金) 21:36:03
インターフェース主流なのは解るが
全派生先で同じ実装するくらいなら、素直に継承すべき

650 :デフォルトの名無しさん:2011/02/05(土) 10:15:48
最近のWPFでの機能追加は、継承よりもビヘイビアが主流なんですがね。

651 :デフォルトの名無しさん:2011/02/05(土) 10:17:59
アプリケーションレベルではな
クラスライブラリとしてコントロールを提供する場合はそんなもん使わない

652 :デフォルトの名無しさん:2011/02/05(土) 10:32:41
結局好きなように作ればいいの?

653 :デフォルトの名無しさん:2011/02/05(土) 10:36:45
仕事でなければそんなん当たり前

654 :デフォルトの名無しさん:2011/02/05(土) 10:39:30
>継承は悪
これは多重継承できちゃう言語が戦犯なだけじゃないの?

655 :デフォルトの名無しさん:2011/02/05(土) 10:44:22
継承元の仕様が変わったらどうすんの?って話
仕様変わるならsealしとけカスって思うけどね

656 :デフォルトの名無しさん:2011/02/05(土) 11:03:39
DependencyObject継承するのが大前提のビヘイビアを例に出すのは可笑しい

657 :デフォルトの名無しさん:2011/02/05(土) 11:14:37
AがBを継承していて、CがBを使っているとすると、CはAとBの両方に依存することになるけど、
BがAを継承せずに内部で使っているだけなら、CはBにしか依存しないわけだ
だからAの仕様が変わってもBだけ変更すれば済む

658 :デフォルトの名無しさん:2011/02/05(土) 11:21:50
でもBをAとして扱うのが要件だったらアウトだね

659 :デフォルトの名無しさん:2011/02/05(土) 11:25:57
それは要件定義した奴に責任が行くから問題ないさ

660 :デフォルトの名無しさん:2011/02/05(土) 11:31:13
ControlにFooする機能を追加したFooControlと
Barする機能を追加したBarControlがあったとして
FooとBar両方が欲しくなったらどうするのか? という問題もあるな

661 :デフォルトの名無しさん:2011/02/05(土) 11:35:07
AbstractFooBarControlじゃないすか

662 :デフォルトの名無しさん:2011/02/05(土) 11:35:12
>>660
まーやり方はいろいろあるけど
FooControlもしくはBarControlのどちらかを継承したクラス(HogeControlを作って
継承しなかった方はHogeControlのコンストラクタでインスタンスを作って
アクセス用のメソッドを作るとか

HogeControlを外から見れば両方継承してるように見ればいいだけだし

663 :デフォルトの名無しさん:2011/02/05(土) 12:15:07
>>654
継承は悪、の根拠は結合密度の問題。
 is-a = 元クラスはホワイトボックス。元クラスの実装を変えたら影響を受ける。
 has-a = 所持クラスはブラックボックス。所持クラスの実装を変えても仕様が変わらなければおk

継承を使ってもちゃんと設計しハリウッドの原則に従えば疎結合にはできるし必ずしも悪ではないが、
protected変数を書き換え元クラスを制御ようなアホがいる限り"継承は悪"を言い広めるのが世のため人のため

664 :デフォルトの名無しさん:2011/02/05(土) 12:21:02
>>647は.NET一般の話なのに、>>650がビヘイビアの話にすり替えているのがおかしい

>>663
protected変数の書き換えが出来る時点でフレームワークがダメダメ
リフレクション前提ならそれもバカな話だ

665 :デフォルトの名無しさん:2011/02/05(土) 12:27:42
昔の思想やJavaの言語仕様に問題があっただけで、.NETじゃ継承もブラックボックスだよね
基本的に継承しても意味のないつくりになっていて、継承するのは継承専用に設計されたクラスだけ

666 :デフォルトの名無しさん:2011/02/05(土) 12:38:54
ヘルスバーグさまさまってとこか

667 :デフォルトの名無しさん:2011/02/05(土) 12:48:33
> protected変数を書き換え
というか派生クラスに書き換えてもらうためにprotectedにしてるんじゃないのか

668 :デフォルトの名無しさん:2011/02/05(土) 12:49:48
C#や.NETは基底クラスの変更によって派生クラスが誤動作しないように
やたらと細かい仕様があるからな
いかに基底クラスの変更を危険視してるかがわかる
約束事が通じる範囲なら勝手だけど、不特定多数向けのクラスライブラリ向けなら
protectedフィールドはpublicフィールドと何も違わない

669 :デフォルトの名無しさん:2011/02/05(土) 16:27:22
>664

つーか、ここWPFのスレなんだけど。
一般論展開したいなら余所のスレに行けばいい。



670 :デフォルトの名無しさん:2011/02/05(土) 16:30:01
>656
継承前提で使うクラスと、コントロールの継承とでは意味が違うんですが。


671 :デフォルトの名無しさん:2011/02/05(土) 16:33:09
>>669-670
両方とも俺じゃなくて>>647に言えよ

672 :デフォルトの名無しさん:2011/02/05(土) 16:35:24
実装の多重継承を許可しない設計の言語では、
継承によって小単位でカプセル化された特性やポリシーを
いくつも組み合わせて提供することができないから
「継承は悪」と思ってきたけど、そうじゃないの?

673 :デフォルトの名無しさん:2011/02/05(土) 18:30:07
>>663
>>ハリウッドの原則
もしよければ参考になる記事をおしえてくださ〜い。

>protected変数を書き換え元クラスを制御ようなアホがいる限り
継承したクラスが親クラスのprotectedで定義されている変数を直接いじるって解釈でOK?


674 :デフォルトの名無しさん:2011/02/05(土) 18:55:20
Don't call us, we'll call you.
たいして難しくないから「ハリウッドの原則」でググってみればおk。
多分大抵のプログラマが無意識にやっているはず。
> OK?
変数に限らず、親クラスの挙動を子クラスが制御すること自体マズい

675 :デフォルトの名無しさん:2011/02/05(土) 19:01:08
処理が分岐するならそれこそクラス分割しとけばいいような気がする

676 :デフォルトの名無しさん:2011/02/05(土) 19:18:59
>>674サンキュ

677 :デフォルトの名無しさん:2011/02/05(土) 19:44:36
>>663
protectedまでしかない言語じゃないんだし、
書き換えられたら困る場合はprivateにするんだよ。
違う言語の話が混じってないか?

678 :デフォルトの名無しさん:2011/02/05(土) 20:00:27
ところで>>641がどういう状況なのかよく分からんのだが
VSじゃなくてExpression Blendの話?

679 :デフォルトの名無しさん:2011/02/06(日) 09:16:03
>>678
VS(VS10)の話です。

具体的には、↓です。

カスタムコンボボックス(ComboEx)にDCountという名前のプロパティを作ったんですけど、
そのCountの値によって、中身の個数をかえたいと思っています。
たとえば、
 DCount = 3 → 1月,2月,3月
 DCount = 4 → 1月,2月,3月,4月
 DCount 1 〜 12 以外 → 1月〜12月まですべて
のように、DCountの値とComboExのItemを対応させたいんです。

ためしに、DCountを考慮せず、
1) ComboExクラスで、1月,2月をaddしたものを、Main.Xaml(デザイナ)にツールボックスから配置する
2) 実行すると1月,2月が表示される
3) ComboExクラスで、さらに3月をaddする
4) Main.Xaml(デザイナ) には、1月,2月 が表示されたまま。

どのように実装すればよいか、アドバイスいただけたら嬉しいです(´Д⊂グスン

680 :デフォルトの名無しさん:2011/02/06(日) 09:37:05
DCountを依存関係プロパティにする

681 :デフォルトの名無しさん:2011/02/06(日) 09:42:03
>>679
http://ideone.com/pbfk8

682 :デフォルトの名無しさん:2011/02/07(月) 12:08:16
ListBoxをDnDで並べ替えられるようにしたいんですが、MVVMな解法ってなんかあります?
EventTriggerで頑張るしかないのかな。
MVVM light使ってます。

683 :デフォルトの名無しさん:2011/02/07(月) 12:59:05
MVVMの枠でやることじゃないな。Viewの範疇。
ListBoxから継承するかコードビハインドかビヘイビアでコード書く。
ビューのコードからコレクションを並び替えるには、CollectionViewを使う。

684 :デフォルトの名無しさん:2011/02/07(月) 13:18:04
チェックボックスをクリックすると
もっさりしたアニメーションでチェックが入るんだけど
どうにかならないのでしょうか?

685 :デフォルトの名無しさん:2011/02/07(月) 13:48:21
Windowsとフレームワークのの限界超えては処理できません。
自作しちゃう?

686 :デフォルトの名無しさん:2011/02/07(月) 14:44:05
>>684
テンプレートを入れ替える
http://msdn.microsoft.com/ja-jp/library/ms752319.aspx
これにはアニメーションは含まれてないっぽいので単にコピペして使えばアニメーションしなくなるはず

687 :デフォルトの名無しさん:2011/02/07(月) 15:47:05
デフォルトのテンプレートってどこか(何か)でわかる?

688 :デフォルトの名無しさん:2011/02/07(月) 16:21:48
{Binding Value , StringFormat={}{0:F2}V}"
{Binding Value , StringFormat={}{0:N0}Hz}"
{Binding Value , StringFormat={}{0,4:F1}℃}"
{Binding Value , StringFormat={}{0,5:F1}%}"
{Binding Value , StringFormat={}{0,5:N0}rpm}

やっとWPF3.5で動くようにしたのにWPF4にしたら動かなくなってしまった(XamlReader経由)。
もう泣きたい。

689 :デフォルトの名無しさん:2011/02/07(月) 17:49:42
>>687
Expression Blendには、デフォルトのテンプレートをコピーした上でそれをベースにして編集する機能がある
BlendないならコントロールのTemplateプロパティの値をXamlWriter.Save

690 :デフォルトの名無しさん:2011/02/08(火) 10:01:38
最近、WPFをやり始めたのだけど,どなたか教えてくだされ。

XBAPでボタンを配置してボタンを押すと他のWebページに画面を遷移させたいけど
作法が解りません・・。

ちなみに・・
Private Sub btnBack_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles btnBack.Click
NavigationService.Navigate("http://www.yahoo.co.jp")
End Sub
としてもブラウザ画面にhttp://www.yahoo.co.jpと文字が表示されてしまいます。


691 :デフォルトの名無しさん:2011/02/08(火) 10:17:14
http://msdn.microsoft.com/ja-jp/library/aa970060.aspx#communicating_with_the_host_web_page
によると、HTMLページのFrame内でXBAPをホストしている場合、
JavaScriptのwindowオブジェクトが取得できるらしいから
あとはJavaScriptでのページの移動と同じ方法が使えるはず。
でも正直XBAPなんか使わない方がいいよ。WPFなら普通のアプリとして作ってClickOnceで配布するか、
ブラウザで動かしたかったらWPFよりもSilverlightを強く推奨。
SilverlightならブラウザやHTMLページの操作も強力にサポートされてる。

692 :デフォルトの名無しさん:2011/02/08(火) 10:27:07
http://msdn.microsoft.com/ja-jp/library/ms591053%28v=VS.100%29.aspx

Private Sub goButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
Me.NavigationService.Navigate(New Uri(Me.addressTextBox.Text))
End Sub

Vb使わんから良く解らんが、MsdnさんはUriオブジェクト使えと言っている

693 :デフォルトの名無しさん:2011/02/08(火) 10:39:17
>>691
ありがとうございます。Silverlightは触ったことすら無いので一度勉強してみます。

>>692
ぉお!まさにこれでした。・・・って試してみたらIE(XBAP)が終了した・・。
なるほど、そういうものなんですね。勉強になりました。

御返答頂いた方々、ありがとうございました。もっと功夫積んできます。

694 :デフォルトの名無しさん:2011/02/08(火) 20:37:39
BitmapFrameを使ってデジカメ画像のメタデータにアクセスして、exif情報は取れ
るのですが、ファイルがロックされてしまい、exif情報を取り出したファイルの操作
ができません。IDisposableでないので、Dispose()もできず、freeze()してみても変
わりません。どうしたら、ロックを解除できるでしょうか?

695 :デフォルトの名無しさん:2011/02/08(火) 20:40:04
Stream渡して作ればいいんじゃない?

696 :デフォルトの名無しさん:2011/02/08(火) 21:22:56
Windows API Code Pack for Microsoft .NET Framework 使えば、簡単にexif情報取得できるけどね
取れるのはOS依存だけど、そのOSのExplorerで読める物は大丈夫なはず

http://code.msdn.microsoft.com/WindowsAPICodePack

697 :デフォルトの名無しさん:2011/02/08(火) 23:10:38
>>695

Stream渡しでStreamをCloseするとファイルがロックされることはなくなりましたが、
こんどは BitmapFrame.MetadataがStreamのクローズと共にnullになってしまい
ました。MetadataをCloneしても、CloneCurrentValueしても変わりません。
Streamをクローズするまえに必要なタグ情報は全部読みだしておくことで回避していますが。。。

>>696
なんと! そんないいものがあったんですか? apicodepackは使っているんですが
知りませんでした。早速調べてみます。

698 :デフォルトの名無しさん:2011/02/08(火) 23:16:17
>>697
Streamだけのオーバーロードだと、遅延読み込みになるっぽい
http://msdn.microsoft.com/ja-jp/library/ms615998.aspx
http://msdn.microsoft.com/ja-jp/library/system.windows.media.imaging.bitmapcacheoption.aspx

699 :デフォルトの名無しさん:2011/02/09(水) 00:27:29
>>698
デバッガでステップ実行してみると遅延実行か否かにかかわらず、BitmapFrame.Metadataを
Cloneした時点でexif情報は一応読み込まれてImageMetadataにコピーされているようです。
Cloneなのでもとのデータとは参照関係にないのですが、Streamを閉じると、コピーしたImageMetadata
の各項目がnullになってしまいます。(ImageMetadata自体はnullでない)。

謎な挙動なのですが、ImageMetadataはFreezable(DependencyObject)なので、もしかすると
もとのStreamとバインディングでもされているんでしょうか???

>>696
使ってみました。これは便利、と思いきや、BitmapFrameを使った方法では取得できる
項目にnullが返ってきたり、今ひとつ大丈夫なのかどうか心配です。
CanonicalNameが間違っているのでしょうか?


700 :デフォルトの名無しさん:2011/02/09(水) 00:49:50
>>699

api code packでexifをとろうとするとnullが帰ってくる件自己解決しました。
int dobleなどプリミティブ型はすべてNullable<T>になっていたため、
GetProperty<T>でTにNullable型を指定しないといけないのが原因でした。

701 :デフォルトの名無しさん:2011/02/09(水) 14:22:47
Canvasをいくつか重ねて一番手前のCanvasに貼り付けたButtonが
反応しないことってありますか?

今再現性100%で起きてるんですが・・・

モード切替ボタンが3つあって
起動直後にボタン1を押すと正常
その後ボタン2を一回押すとボタンの見た目だけ変わるけど
その先のコードが呼ばれない
もう一度ボタン2を押すとコードが正常に呼ばれる

これはボタン3つとも同じ結果になります


702 :デフォルトの名無しさん:2011/02/09(水) 14:57:59
ボタンにフォーカスが来るように組んでみましたが
結果は変わらずでした・・・
よくわからん・・・

703 :デフォルトの名無しさん:2011/02/09(水) 15:20:45
そーす

704 :デフォルトの名無しさん:2011/02/09(水) 15:32:05
ToggleButtonという話なら、Aeroな表示な時フォーカスを与えてからIsCheckedを変更しないとボーダー表示が残るバグがあるな。
バグ修正したカスタムコントロールで俺は対処した。

705 :デフォルトの名無しさん:2011/02/09(水) 15:36:59
>>703
晒せません・・・

>>704
Toggleじゃないです



あほなことをしてたかも・・・

Buttonが乗ってるCanvasにListBoxも乗ってるんですがこいつのSelectedIndexを
場合によっては-1にしてるんですが(つまり選択無し)こいつが影響してたようです・・・

706 :デフォルトの名無しさん:2011/02/09(水) 16:10:09
すみません
WPF SLともに似たような感じの別ソースを作って実験してみましたが
そちらでは再現しませんでした。

どうも今書いてるソースの問題のようです。

おさわがせしました・・・・

707 :デフォルトの名無しさん:2011/02/09(水) 19:24:27
関係あるかは分からないけど、自前コードでコントロールを色々ゴニョゴニョしていて
VisualChildrenに入れ忘れた時に似た症状(たまに再描画されたりされなかったり、
操作できたりできなかったり)を見たことがある。

708 :デフォルトの名無しさん:2011/02/09(水) 19:55:39
Wpfって簡単にいうと何ですか?例えば?


709 :デフォルトの名無しさん:2011/02/09(水) 20:54:49
WinFormにおけるSilverlight

710 :デフォルトの名無しさん:2011/02/09(水) 21:14:15
>>709
分かりやすいです。

711 :デフォルトの名無しさん:2011/02/09(水) 23:14:26
WPFはまだまだ流行りそうにないな。

712 :デフォルトの名無しさん:2011/02/09(水) 23:40:49
WPF、マイブームきてんね

713 :デフォルトの名無しさん:2011/02/09(水) 23:45:36
俺の中では、SL1.0が出た時からずっとSLブームなのに!

714 :デフォルトの名無しさん:2011/02/09(水) 23:52:05
私もマイブーム来てるよ。

715 :デフォルトの名無しさん:2011/02/10(木) 00:11:30
酷いメモリリークが起こっていたので強参照の関係を調査してみたら、
どうも表示上まったく無関係なコントロール間に参照ができ、
破棄したはずのコントロールへの参照が相当数残っている模様…

これ直しようがないよね…

716 :デフォルトの名無しさん:2011/02/10(木) 01:23:06
InputBinding で Modifier 無しのキーでコマンド叩こうと思ったらダメだった。

<UserControl.InputBindings>
<KeyBinding Key="A" Command="{Binding ACommand}" />
</UserControl.InputBindings>

みたいな操作を実装しようと思ったら、代替手段って何になるの?

717 :706:2011/02/10(木) 11:06:17
>>707
確かにCanvasを継承してちょっと機能を持たせてる独自コントロールがいるんですよね・・・
ほかのパーツもいろいろ影響受けてるのかよくわからない動きも他にでてきてるし・・・

使いこなせれば確かにバインディング含めて便利なんだが便利機能がある分
ブラックボックス化してる部分が多くて返って大変かも・・・・

718 :デフォルトの名無しさん:2011/02/13(日) 01:41:17
DispatcherTimerはDispatcherキューに入れられるっていうからせいぜい60fpsくらいしか
でないと思ってて、実際どんなに小さい値をIntervalに入れても60くらいを示すんだけど、
Intervalを0にしたらウン万fpsたたき出す。どうなってんのこれ。

あとSystem.ThreadingのTimerなら120行けるんじゃと思って試してみたけどDispatcherTimer
と同じような精度だった。たしか分解能10msほどだっけ。

ソースはここのを使わせてもらった。
http://d.hatena.ne.jp/mitsc1729/20101106/1289045053

719 :デフォルトの名無しさん:2011/02/13(日) 14:07:57
Canvas.Leftなどをバインドさせる場合はどういう風に書けばいいのでしょうか?

720 :デフォルトの名無しさん:2011/02/13(日) 19:21:25
{Binding (Canvas.Left)}

連載:WPF入門
第5回 WPFの「データ・バインディング」を理解する
http://www.atmarkit.co.jp/fdotnet/chushin/introwpf_05/introwpf_05_02.html

721 :デフォルトの名無しさん:2011/02/14(月) 01:48:45
RadioButtonをGroupNameでグループ化した物を
上から順に012とか読み取れるような方法って標準でありますか?

722 :デフォルトの名無しさん:2011/02/14(月) 23:24:00
「読み取る」が何を意味しているのか、ItemsSource内のRadioButtonなのか、
ViewModelからBind経由で値をとりたいのか、それともView側で直接とりたいのかetc...
そもそもの目的が分からないからなんとも言えないが色々と手段はある。

723 :デフォルトの名無しさん:2011/02/18(金) 17:19:09
CanvasのEffect設定すると、ChildrenのUIElementもEffect設定されてしまう・・・
CanvasだけにEffectを設定できないの?

724 :デフォルトの名無しさん:2011/02/18(金) 21:10:08
背景ブラシだけにエフェクトを適用したいということ?
BorderかRectangleでも置いとけ

725 :デフォルトの名無しさん:2011/02/19(土) 21:54:47.64
コントロールの幅がそれぞれ[Auto][ストレッチ][ストレッチ][Auto]
なレイアウトにできるのはGridだけ?ストレッチが1つならDockでも可能だけど。

726 :デフォルトの名無しさん:2011/02/20(日) 01:57:34.94
テキストブロックの文字列の一部を修飾する方法を教えてください。

<TextBlock>
前半<Bold>太字</Bold>後半
</TextBlock>

リテラルなら上で良いけど、前半、太字、後半をバインドする方法が分からないです。


727 :デフォルトの名無しさん:2011/02/20(日) 02:50:33.99
面白い発想だな

728 :デフォルトの名無しさん:2011/02/20(日) 03:02:36.10
TextBlockの子はInlines。
リテラルに見えるが<Run>を省略できるだけ。

Inlineクラス
http://msdn.microsoft.com/ja-jp/library/system.windows.documents.inline.aspx

729 :デフォルトの名無しさん:2011/02/20(日) 04:16:14.72
コンバーター書いて渡しちゃえとか思うのはだめなんだろうか

730 :デフォルトの名無しさん:2011/02/20(日) 12:11:14.43
ありがとうございます。
XAMLで書ける要素はXAMLで書きたいな、と思っております。

実際>>728さんのアドバイスで試してみて2つ問題が。

・Run.Textは依存プロパティではないからバインドできない。

・問題というほどじゃないのだけど、要素をきれいに並べたくて下のような書き方すると改行部分で空白が入る。
<TextBlock>
<Run>前半</Run>
<Bold>太字</Bold>
<Run>後半</Run>
</TextBlock>

>>726の書き方だと「前半太字後半」となるのが、上だと「前半 太字 後半」になってしまう。
<Run>前半</Run><Bold>太字</Bold><Run>後半</Run> と書けばいいんだけど…。

>>729さんの言うようにコンバータ作るのが良いのか、そもそも初手の発想が駄目で
テキストの一部修飾はもっとスマートなやり方があるんでしょうか?


731 :デフォルトの名無しさん:2011/02/20(日) 12:16:51.12
あとはいい結果になるかどうかわからんが

<Stackpanel>
<TextBlock/>
<TextBlock/>
<TextBlock/>
</Stackpanel>

こんな感じでTextBlockが横に並ぶようにしちゃうとか

732 :デフォルトの名無しさん:2011/02/20(日) 12:45:12.42
>>731
条件後出しになってごめんなさい。
「前半太字後半」で1文として扱われてほしいのです。

TextBlockとして並べてしまうとたとえば改行の際の動作がおかしいので。

<希望の動作>
前半太字後


<TextBlock並べた場合>
前半太字後
____半


733 :デフォルトの名無しさん:2011/02/20(日) 13:07:05.70
素直にRichTextBox使ったらどう?

734 :デフォルトの名無しさん:2011/02/20(日) 13:27:18.80
RichTextBox使っても結局Inlineで指定するんだから何も変わらない

735 :デフォルトの名無しさん:2011/02/20(日) 14:21:24.51
どなたかご存知の方教えてください。
VisualStudio2005 C# Designer を使用して Form を作成中です。
GUI 上に Panel ってのを追加してみたけど、やっぱ止めようとしてます。
で削除したいのですが、削除、切り取りとも、
苦労して配置したボタンその他みんな道連れになって削除されてしまいます。
パネルだけを削除する方法は?

736 :デフォルトの名無しさん:2011/02/20(日) 14:23:10.91
スレ違い

737 :デフォルトの名無しさん:2011/02/20(日) 14:23:47.08
了解。
ではどこに?

738 :デフォルトの名無しさん:2011/02/20(日) 14:24:38.90
ふらっとか相談室

739 :デフォルトの名無しさん:2011/02/20(日) 14:26:22.62
というかWPFと関係ないし、VSスレで聞いても怒られるような質問だぞ。
本屋やネットみて基本身につけたほうがいい。

740 :デフォルトの名無しさん:2011/02/20(日) 14:26:57.46
昨日わんくま行った奴いる?

741 :デフォルトの名無しさん:2011/02/22(火) 08:38:29.50
どなたかご存知の方お願いします。
VerticalScrollBarVisibilityがtrueなRichTextBoxがありますが、Documentプロパティを入れ替えて行数の多い文書を投入してもスクロールが有効になりません。何か手続き漏れているでしょうか?


742 :デフォルトの名無しさん:2011/02/22(火) 09:13:30.46
trueって何じゃ?Autoってことか?

743 :デフォルトの名無しさん:2011/02/22(火) 09:27:27.98
>>742
すみません741ですがautoでした。

744 :デフォルトの名無しさん:2011/02/22(火) 09:44:49.59
>>740
あんなの行ってなにが得られるというのだね

わんくま(笑)

745 :デフォルトの名無しさん:2011/02/22(火) 15:20:03.67
わんくまはまず桁外れに脆弱な鯖どうにかすべき

746 :デフォルトの名無しさん:2011/02/22(火) 17:10:41.21
>>745
kwsk

747 :デフォルトの名無しさん:2011/02/22(火) 18:24:58.93
わんくまサーバー使ってるサイトに繋がりにくいし、それのことかな

748 :デフォルトの名無しさん:2011/02/22(火) 19:15:31.68
すげーよく落ちるよな。
あれどうなってんのw

749 :デフォルトの名無しさん:2011/02/22(火) 22:27:52.26
わんくまって何かいいことあるの?

750 :デフォルトの名無しさん:2011/02/23(水) 00:48:41.94
>>748
よく落ちるんじゃなくて、
たまに運がいいと繋がるって感触なんだが……。

751 :デフォルトの名無しさん:2011/02/23(水) 08:26:50.98
検索結果からわんくまに飛んだら500で落ちたでござる

752 :デフォルトの名無しさん:2011/02/24(木) 07:21:13.74
WPFを勉強するのにいい本ってありますか?

753 :デフォルトの名無しさん:2011/02/24(木) 08:01:10.97
741ですが、とりあえず解決しました。
Ribbon UIのサンプルをいじって実験していたところ期待通りの動作とならず質問しましたが、シンプルな WPFアプリケーションで試したところ問題ありませんでした。
Ribbon時の原因はまだ特定できていませんがリフレクションからみで何かあるのかなと推測してます。

754 :デフォルトの名無しさん:2011/02/24(木) 08:35:27.75
>>752
エッセンシャル

755 :デフォルトの名無しさん:2011/02/24(木) 09:35:38.48
高いのよねあれ

756 :デフォルトの名無しさん:2011/02/24(木) 09:38:49.08
ブラウザプラグインのsilverlightもこっちで扱ってはどうか?
向こうのスレは役にたたない

757 :デフォルトの名無しさん:2011/02/24(木) 09:46:44.76
2chブラウザ入れてNGリストで消してスルーしとけ。

WPFに共通する話題ならこっちでやってもいい。
共通する話題か判断できる人は自己解決するだろうけどさ

758 :デフォルトの名無しさん:2011/02/24(木) 09:47:01.82
どうせ書き込んでる人はほとんど同じだろw
SilverlightはWPFじゃなくて.NET Frameworkのサブセットだよ
SilverlightでEntity Frameworkを使うときの話とかWPFスレでやるの?

759 :デフォルトの名無しさん:2011/02/24(木) 16:30:35.63
皆さん似たようなページを大量に印刷してる時どうしてます?
やはりページ毎に全ての印刷要素のインスタンスを作らないと駄目ですかね?
ページ数多いとメモリ消費が凄いことになりそうで。
WinFormsはそこらへん効率的だったのに・・・

760 :デフォルトの名無しさん:2011/02/24(木) 16:44:35.34
逆だろ…

761 :デフォルトの名無しさん:2011/02/24(木) 19:55:00.31
わんくまustで見たけど、IDataError なんとか使った検証の話や、MVVM パターンをT4で生成する話とかあったな。
あと TextOptions 使ってテキストボックスの文字表示を調整したり、MVVM Light使え等の小技も結構紹介されてた。
しかしデモ見てたら、MVVMって検証含めるとイベントハンドラよりコードが肥大化する印象があるけどどうよ。


762 :デフォルトの名無しさん:2011/02/24(木) 21:05:14.26
MVVMって基本的にテストの手間を減らすためのものだから。
テストしないんだったらVMなんかいらん。

763 :デフォルトの名無しさん:2011/02/24(木) 21:26:00.15
ビューレベルの検証をなんでVMに書くかといえば、ひとえにUIなしで単体テストしたいから。それだけ。
テストの手間を考えたら構造が少々複雑になったりコードが増えたりするくらいのコストは無視できる。
MVVMでないとWPFのバインディングを活用できないみたいな誤解があるけど
実際は全然そんなことない。

764 :デフォルトの名無しさん:2011/02/24(木) 21:34:26.89
ああ、だから流行らないんだな

765 :デフォルトの名無しさん:2011/02/24(木) 21:42:26.47
いや、別の理由だろ。どう考えても。

766 :デフォルトの名無しさん:2011/02/24(木) 21:46:59.47
MVVMは複雑な構造を大量の単純作業に分解できるのが利点だと思ってたわ

767 :デフォルトの名無しさん:2011/02/24(木) 22:36:25.69
なんかめんどくさいからコードビハインドをDataContextに突っ込んでる。

768 :デフォルトの名無しさん:2011/02/25(金) 10:27:22.25
WPFとタッチパネルでこんなUI作ってみたい。
http://www.youtube.com/watch?v=6Cf7IL_eZ38

769 :デフォルトの名無しさん:2011/02/25(金) 10:59:31.09
なにこれ・・・超かっこいい

770 :デフォルトの名無しさん:2011/02/25(金) 12:34:57.95
A型の俺は指紋がどうなるのか気になる

771 :デフォルトの名無しさん:2011/02/25(金) 13:53:41.82
メガネ拭きを持ち歩いているA型の俺に隙はなかった

772 :デフォルトの名無しさん:2011/02/25(金) 16:07:03.72
水酸化ナトリウム溶液で指紋を消した俺は、もちろんA型だ。

773 :デフォルトの名無しさん:2011/02/25(金) 16:12:08.39
A型スゴスギワロタ

774 :デフォルトの名無しさん:2011/02/25(金) 16:12:46.39
一方俺は該当タッチパネルでも使える手袋を・・・

775 :デフォルトの名無しさん:2011/02/25(金) 16:13:53.81
そんな俺は+AB型

776 :デフォルトの名無しさん:2011/02/25(金) 16:24:09.09
金属製のかっこいいタッチペン(スタイラス)売ってるぜ
静電容量式で使えないやつもあるから購入前に要チェック。

A型の俺はiPodにも自作タッチペン。
導電スポンジ切ってボールペンの芯の替わりに詰め込むだけの単純な工作だ。

777 :デフォルトの名無しさん:2011/02/25(金) 16:27:57.98
>>776
kwsk


778 :デフォルトの名無しさん:2011/02/25(金) 16:30:36.25
>>777
iPod タッチペン 自作 あたりでググると作り方書いてあるよ。
導電スポンジはAmazonあたりで売ってる。

779 :デフォルトの名無しさん:2011/02/25(金) 16:46:12.17
>>778
ほほぅ〜 これはよさげだw
勉強になったよ ありがとう

780 :デフォルトの名無しさん:2011/02/25(金) 16:47:05.10
ButtonとTextBoxがあるユーザコントロール作ってDataGrid上に表示したところ、
タブで、そのセルにフォーカスあてると一旦ユーザコントロールにフォーカスが移って、
次にTextBoxという具合になるんですが、
いきなりTextBoxにフォーカスあてるためにはどうしたらいいですか?



781 :デフォルトの名無しさん:2011/02/25(金) 19:30:03.07
指紋付くの嫌だから、タッチパネル使う時はペンを持ちたいけれど
ピンチイン・ピンチアウト等、二本指必要な操作が問題だ。

つか、将来的には
直接触らなくても、近付けて指を振るだけで動く様にして欲しいかも。

782 :デフォルトの名無しさん:2011/02/25(金) 20:51:20.14
B型の俺でも指紋は気になる

783 :デフォルトの名無しさん:2011/02/25(金) 21:41:02.10
AB型なら着いた指紋でアート、これよ

784 :デフォルトの名無しさん:2011/02/25(金) 21:46:21.08
お前らが血液型で盛り上がってるとは。失望した

785 :デフォルトの名無しさん:2011/02/26(土) 00:09:44.27
>>780
ContentControlとかはデフォルトだとフォーカスを受け取るから
タブ押してフォーカス移動しながらSnoopとかでフォーカスを持ってるコントロールをチェックしてみ。


786 :627:2011/02/26(土) 02:11:22.84
WPF超初心者です、xamlとコードビハインドの関係を調べています。
例えばWindowが持っているResourceCollectionにSolidColorBrushが入っているとして、それを子ボタンの背景に手動で適用する場合、

MyButton.Background = (Brush)MyStaticResouceExtension.ProvideValue(IServiceProvider);

ここの「IServiceProvider」にはどこのインスタンスを指定すればよいのでしょうか?

787 :デフォルトの名無しさん:2011/02/26(土) 03:16:56.33
TryFindResourceやSetResourceReferenceをなぜ使わない?

788 :786:2011/02/26(土) 03:34:20.42
>>787
色を塗ったり、塗る方法が知りたいのではなくて
xamlが裏でどのように変換されているのかを調べています。

789 :デフォルトの名無しさん:2011/02/26(土) 06:54:31.60
自分でマークアップ拡張書いてみてProvideValueに何が渡ってくるか調べてみればいいよ

790 :デフォルトの名無しさん:2011/02/26(土) 17:13:13.31
>>781
タッチパネル対応箸の出番だな

791 :デフォルトの名無しさん:2011/02/26(土) 18:04:38.98
>>781
光学式のは厳密には触れなくても反応する。
どこまで指を上げればいいのか分からなくて慣れるまでダブルクリックできないけど。

792 :デフォルトの名無しさん:2011/02/26(土) 18:08:24.11
音波式って最近見ないよね

793 :デフォルトの名無しさん:2011/02/26(土) 23:39:43.78
これで、DELLがこの間出したばかりのST2220T(22"IPS、光学式タッチパネル)を
紹介する流れができたわけですね。

794 :デフォルトの名無しさん:2011/02/27(日) 00:07:54.77
既に画面の前でダンスして操作する時代に入っている

795 :デフォルトの名無しさん:2011/02/27(日) 14:34:22.89
最近のスレの流れでSnoopの存在知りました。
おまいらありがとう

796 :デフォルトの名無しさん:2011/02/27(日) 14:40:11.05
>>793
発売から1週間経ってないのに3万とはタッチパネルも安くなったもんだな。
1台買おうかと思って製品仕様見てきた。
IPSなのはいいけどグレアパネル使ってるのか。ノングレアだったら買ってたのに…

797 :デフォルトの名無しさん:2011/02/27(日) 15:36:11.56
一台グレアパネルを置いておくと後ろを確認するのに便利だぞ。
IOのもNANAOのもグレアパネルだしな……

798 :デフォルトの名無しさん:2011/02/27(日) 15:37:51.25
命を狙われる開発者wwww

799 :デフォルトの名無しさん:2011/02/27(日) 15:37:55.22
タッチパネルはどうしても耐久性が必要になってくるからね
ただ光学式ならモニタ表面に何張ってもいいので、アンチグレアフィルムでも貼ればいい

800 :デフォルトの名無しさん:2011/02/27(日) 15:39:52.58
何の話をしてるの。

801 :デフォルトの名無しさん:2011/02/27(日) 15:46:44.34
>>768→指紋で汚れそう→タッチパネルとかタッチペンの話→命を狙われる開発者

802 :デフォルトの名無しさん:2011/02/27(日) 15:49:41.08
>>797が悪い
後ろを確認するのに便利とかいうから

803 :デフォルトの名無しさん:2011/02/27(日) 16:41:54.67
          ,. ‐''"´ ̄ ̄ ``'‐.、
       .,.‐''";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;`'‐.、
      ,.‐´;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;`‐、
     ,‐´;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;`‐、
    ,l";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;゙'i,
   ,l";;;;;;;;;;;;;;;;;;;;;;;;;;;く ̄` `''=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;`゙l、
  ,,,,L;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;`i,  _,,,,、 ゙'''li;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i、
.,i",-..,.゙ヽ;;;;;;;;;;;;;;;;;;;;;;;;l" `  .~ヽ、 ~'=i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i、
゙,l´;;;;;;l l;;;;;;;;;;;;;;;;;ノ''',,,==二^'''i、 ゙' ,、  ゙゙゙'!i;;;;;;;;;;;;;;;;;;;;|
`イ;;;;;;| |;;;;;;;;;!"   ヽ,,,_  ゙゙i;;;;;;;;゙l,,  i、    `゙゙ヽ、;;;;;;|
. ;;;;i´::,l";;;;;;;i"     ゙ `'t;j.、ミ;;;;;;;;;`''゙;> ,l゙ ,,,,,,-''"ヾ |;;;!
. ,;;|`::,l;;;;;;;l"       `'''─゙''ー--''"ノ /, .ヘ_,,,..-'ヽ,ノ;;l
 '';>,l;;;;;;;;l゙          _,,,,-‐  .,,." '.ノ;;;;;;;;;;ッ-、!l;;i´
l,  /;;;;;;;;i'      _,,r‐‐''"`     |  l, ゙ミ'a .、_ッ//
. "く;;;;;;;;;|    ,,,r‐'"            .i. ,!:l::::`"''"//"
:',:::',゙ー-"  ,,r''"           ,、   ,i ,!::|::::::::::://
、゙l,::'               :--、,,,,  i::::|:::::::://
'゙;;,'、::               `ヽ;;;;;;;;>":::|::::://
゙、;;ヽ、::ヽ       jll、,,,,,,,,,,,,,,.:'',、:::::::::::::::,,ソ"
 ゙、;;\:::\           `゙゙);;':::::::.,,∠-'
  ヽ;;;\:::゙.、     ー-=-'''-、 ``:::::/`      用件を聞こうか
    \;;`ヽ;:ヽ、      , "、:::/
     \;;;"-、゙'- ,_    ノ  レ'"
‐、.      \;;;;`ー、;:~''ー、,,,__,,.ノ
  `‐、.     ヽ;;;;;;;;;゙-、l" `
    ゙‐、    \;;;;;;;;;;゙゙'-、

804 :デフォルトの名無しさん:2011/02/27(日) 17:35:45.30
DataGridで特定のCellをプログラムから編集状態にするにはどうしたらいいでしょうか。


805 :デフォルトの名無しさん:2011/02/27(日) 17:58:09.70
アホに聞かなくとも自分で調べれば一発だよ

806 :デフォルトの名無しさん:2011/02/27(日) 18:23:31.66
スレに喧嘩売って今更教えろと言われてもなぁ

807 :デフォルトの名無しさん:2011/02/27(日) 19:47:31.79
何の話をしてるの。

808 :デフォルトの名無しさん:2011/02/27(日) 22:58:45.18
>>804
CurrentColumnとCurrentItemを設定してBeginEdit()かな。

809 :デフォルトの名無しさん:2011/02/28(月) 02:34:47.70
XAMLでアニメーション書くのコードに比べたら楽ちんだけど、
アプリの設定項目としてアニメーションを無効にできるようにしたいとき、
どういうふうに書くといいのかな。コードならストーリーボードの追加・削除はわかるんだけど。

810 :デフォルトの名無しさん:2011/02/28(月) 09:03:20.95
>>809
細かいことはリソースディクショナリとして別のXAMLファイルに分離しておいて
スタイルを入れ替える

811 :デフォルトの名無しさん:2011/02/28(月) 22:25:55.85
「WinFormのMS Pゴシック 12ptでのTextBox」と、

「WPFのTextBox」
<TextBox Name="textBox1" FontSize="16" AcceptsReturn="True" FontStretch="Normal" FontFamily="MS PGothic" />

の表示に文字幅の差異が生じるのですが、どうすればWinFormと同じように表示できますか?
左がWinFormの望ましい表示で、右がWPFの文字幅がズレた表示です

http://www1.axfc.net/uploader/Img/so/108711.bmp

また、表示しているのは以下の文字列です

|  | 半角で「&emsp;」、全角スペース+半角スペース
| _ | 半角スペース2個+_
| .| 全角スペース+ドット
| . | 半角スペース2個+ドット
| ~| 半角スペース+~
| | 全角スペース
| _| 半角スペース+_
| ゙| 半角スペース+゙
| .| 半角スペース+ドット
|~| 
|..| 
| | 半角スペース
|゙| 
|.| 
| | (「&thinsp;」)


812 :デフォルトの名無しさん:2011/03/01(火) 00:40:23.77
2chブラウザでも作るの?
GDI+に強く依存した表示だから再現するのは大変。
WinFormsで作ったコントロールをホストするのが一番簡単じゃないかな。

813 :デフォルトの名無しさん:2011/03/01(火) 05:03:46.42
せめてpngに変換しろw
ttp://tsushima.2ch.at/s/news2ch126984.png


814 :デフォルトの名無しさん:2011/03/01(火) 05:10:01.30
ttp://tsushima.2ch.at/s/news2ch126990.png
この辺の話か

815 :デフォルトの名無しさん:2011/03/01(火) 19:56:35.39
MVVMで、*.xaml.csをViewModel用途にしてはいけない理由がよくわかりません。
別途ViewModelを作って、*.xaml.csの中身は空にするというのが。

816 :デフォルトの名無しさん:2011/03/01(火) 20:00:34.16
そこはコードビハインドを書く部分だからViewだよ

817 :デフォルトの名無しさん:2011/03/01(火) 20:04:04.06
>>815
コードビハインドに書いてしまうとUIがくっついてくるから単体テストしづらい
VMはプレーンなクラスなので、できるだけそちらに書いておけば単体テストしやすい
それだけ

818 :デフォルトの名無しさん:2011/03/01(火) 20:17:03.24
初心者はまずMVVMとか気にしないでどんどん書いたらいいと思うよ…

819 :デフォルトの名無しさん:2011/03/01(火) 20:23:09.76
MVVMするなら、ファイルを開くダイアログを表示してVMで処理するだけでも
IDialogServiceインターフェイスとか作ってDIしたりとか
かなり大掛かりな仕組みが必要になるんだよな
面倒だからといって、絶対にVMから直接ダイアログを開いたりしてはいけない
理由はとにかく「単体テストの邪魔になるから」
そこまでする気がないならMVVMなんか何の意味もないんですよ

820 :デフォルトの名無しさん:2011/03/01(火) 20:31:51.53
MVVMでも切り離せない部分あるし、何の意味もないは言いすぎのような。
少なくとも個人ならコストかかる部分だけやる選択肢もある。

821 :デフォルトの名無しさん:2011/03/01(火) 20:37:22.83
じゃあ意味って何?
バインディングは実際>>815で普通に使えるわけでMVVMのメリットではないよ

822 :デフォルトの名無しさん:2011/03/01(火) 20:39:59.16
1行目だけ読んで書いたのかよ。
相手すんのもアホらしい。

823 :デフォルトの名無しさん:2011/03/01(火) 20:44:03.43
教条主義なんで

824 :デフォルトの名無しさん:2011/03/01(火) 20:44:41.21
>>821
意味がわからないうちは*.xaml.csにイベント書いたりしてていいんじゃないの?

そのうちバインド使った方がいろいろ楽できることに気がつくから

その辺が見えない人に利点を説いても無駄

825 :815:2011/03/01(火) 20:50:40.46
概念としてのMVVMがわからないとか、コードビハインドがどうというよりは、
空の*.xaml.csに何の意味があるかがよくわからないという話です。

826 :821:2011/03/01(火) 20:50:40.89
>>824
そうじゃなくて、.xaml.csに書いたらバインディングが使えないというわけではないってこと
ビュー自身のプロパティにバインドすることも普通に可能
>>815の「なぜVMを別のクラスにするのか」という質問に対して、
「バインディングが便利だから」は回答になってないよ

827 :815:2011/03/01(火) 20:52:37.25
>>826
そういう話です、よくわからないのは。

828 :デフォルトの名無しさん:2011/03/01(火) 20:52:57.80
だからコード書けって

829 :デフォルトの名無しさん:2011/03/01(火) 20:55:01.51
>>827
ウインドウの*.xamlに書くべきだけど書けない(またはスゲー量になる)部分をコードとしてそこに書くんだと思ってな

830 :デフォルトの名無しさん:2011/03/01(火) 20:57:03.89
つか>>821は何で突然バインディングなんて言い出したん?
5日前から誰もバインディングの話なんかしてないが

831 :デフォルトの名無しさん:2011/03/01(火) 20:57:59.23
バインドという仕組みを利用しないと自分でごりごりコード書いて
そのコード全部をテストしないといけないが、バインドをうまく利用すれば
書くコード量も減るので、自分で面倒みる部分もかなり減る

つまりバグの作りこみも減る

この辺は理屈で言ったところで納得しないだろうから
コード書けって言ってる

ネットで転がってるサンプル程度ではなくてもうちょっと大きなのを

832 :デフォルトの名無しさん:2011/03/01(火) 21:02:00.82
ウィンドウの一部分だけにMVVMパターンを利用しても、全く意味がないってことはないだろう、って話。
別にダイアログ呼んだっていいんだよ。それでトータルコストが浮くのなら。

正義は何だ?MVVMパターンを100%適用することか?
ちげーだろ。

833 :デフォルトの名無しさん:2011/03/01(火) 21:05:36.66
>>832
>正義は何だ?MVVMパターンを100%適用することか?
バインド使うことを覚えると将棋の最短手を考えるようにバインドだけで何とかできないか?
とコード減らすことばっかり考える奇妙な状態になるけどなw

それだけ便利

834 :デフォルトの名無しさん:2011/03/01(火) 21:06:04.45
正義(笑)JUSTICE(笑)

835 :デフォルトの名無しさん:2011/03/01(火) 21:07:00.45
なんか熱くなってるぞ

836 :815:2011/03/01(火) 21:10:15.33
自分が聞きたいこととは少し話が違う方向にいっているので、再度聞きたいことを書きます。
バインドを使わないとか、コードビハインドで書きたいとかいっているわけではなくて、
単純になぜ*.xaml.csとは別のViewModel.csを用意するのかという話です。
*.xaml.csにバインドするプロパティやコマンドを定義しては駄目なの?、っという所が出発点です。


837 :デフォルトの名無しさん:2011/03/01(火) 21:10:24.83
>IDialogServiceインターフェイスとか作ってDIしたりとか
>かなり大掛かりな仕組みが必要になる

なんてのは確かに手間考えるとどっこいな気もする

838 :デフォルトの名無しさん:2011/03/01(火) 21:11:53.22
>>836
ぶっちゃけIDEの仕様

839 :デフォルトの名無しさん:2011/03/01(火) 21:14:48.26
そこに書いたらMVVMにならないから

が一番シンプルな答えじゃないの
最初の質問で「MVVMで」って言ってるんだから

840 :デフォルトの名無しさん:2011/03/01(火) 21:16:49.64
>>836
バインディング使いたいだけなら別にそれでも構わない
クラスを分けるのは、単体テストのしやすさと
どうせならクラスごと分けてしまったほうが役割分担や設計がはっきりするから

841 :デフォルトの名無しさん:2011/03/01(火) 21:18:48.43
InitializeComponentを何だと思ってんの?

842 :デフォルトの名無しさん:2011/03/01(火) 21:21:03.16
思い切りgolden hammer patternに嵌ってんな。

843 :デフォルトの名無しさん:2011/03/01(火) 21:25:15.20
方法は別にして、ファイルダイアログくらいはUIに依存しないで開けるようにしないとそれこそMVVMにならんよ
それくらいは最低限必要

844 :デフォルトの名無しさん:2011/03/01(火) 21:27:20.52
かまってちゃんが沸いてるのか

845 :デフォルトの名無しさん:2011/03/01(火) 21:28:57.42
VからもVM(面倒だからといって、絶対にVMから直接ダイアログを開いたりしてはいけない>>821)からも開かないでどっから開くん?

846 :デフォルトの名無しさん:2011/03/01(火) 21:31:41.49
Mだろ。

847 :815:2011/03/01(火) 21:32:29.19
- 責務的には*.xaml.csはあくまでViewでしょ
- なので、責務を考えればViewModelは別クラスにするのが当然
- InitializeComponentしかない*.xaml.csが出来ちゃうのは開発環境的な都合
- *.xaml.csが空なのは気にすんな
- 逆に、MVVM的な責務を気にしないなら、*.xaml.csにコマンドやプロパティを定義するのはあり(別にそうやりたいわけではないですが)

っという認識で合っていますでしょうか?
これで合っているのなら、自分的には納得ですが。

848 :デフォルトの名無しさん:2011/03/01(火) 21:33:33.59
・InteractionRequestでViewに通知してViewのビヘイビアで受けてダイアログ開いてViewModelに結果を返す。
・インターフェイスを被せておいて、その実装クラスでダイアログ開く。VMからはインターフェイス経由で扱う。
ファイルダイアログなら後者のほうがいいと思う
特定のビューでしか使わないダイアログなら前者でもおk

849 :デフォルトの名無しさん:2011/03/01(火) 21:36:42.17
>>847
>InitializeComponentしかない*.xaml.cs
もしかしてXAMLでイベントハンドラを指定すれば
*.xaml.csにイベントハンドラのコード部分がかかれるんだが・・・

*.xaml.csってWinFormでいうところのForm1.csと同等に扱えるぞ
*.xamlはWinFormでいうところのデザイナーが勝手に書き換えするやつ(名前忘れた)と同等

850 :デフォルトの名無しさん:2011/03/01(火) 21:45:09.94
俺はコードビハインドにプロパティ書いて、DataContextに入れてバインディングしてるよ。
Modelに関係ない、純粋にViewでしか使わないようなプロパティばかりだからViewModelに
書くってのはなんか違うような気もするし。

851 :デフォルトの名無しさん:2011/03/01(火) 21:46:43.42
WPFっていってもXAMLで配置した部品に名前付けて
コードビハインド側で名前を頼りにWinFormのころのようにコードを
ごりごり書くってやり方も可能なんだが、そういうのもよくわかってないのかな?

852 :デフォルトの名無しさん:2011/03/01(火) 21:53:19.86
>>850
>Modelに関係ない、純粋にViewでしか使わないようなプロパティ
ViewModelはそういうのを置くための場所
ViewModelはModelのラッパーじゃなくて文字通りViewのModelなんだよ

853 :815:2011/03/01(火) 21:54:38.29
>>851
いや、さすがにそれは分かっています。
*.xaml.csが空と言っているのは、VMを作ってコマンドやプロパティを定義したり、
Blendでビヘイビアとか使えば*.xaml.csってほとんど空になりますよね、っという話です。

854 :デフォルトの名無しさん:2011/03/01(火) 21:57:58.54
>ほとんど空になりますよね
そうだよ

WinFormのころはForm1.csにごりごり書いてたビュー関連の
コードを書く必要がなくなる仕組みがあるんだからw

だから何?って話だけど



855 :デフォルトの名無しさん:2011/03/01(火) 22:00:05.32
>>852
なるほど。
あとはコードビハインドなら初めから依存プロパティを宣言できるってのもある。
ViewModelでもDependencyObjectを継承すればいいけど、ネット上で見つかるViewModel
の実装はなぜかINotifyPropertyChangedの方ばかりだね。

856 :デフォルトの名無しさん:2011/03/01(火) 22:04:27.17
>>855
モデルが特定の実装技術に依存するのは糞
っていうのが最近の流行りだから
POCOってやつ

857 :デフォルトの名無しさん:2011/03/01(火) 22:15:36.30
INotifyPropertyChangedを継承するにしてもほぼ定型なので
もうちょっと手抜きさせてもらえないのかねw
微妙に定型をまいど書くのがなんかしっくりこないw

858 :デフォルトの名無しさん:2011/03/01(火) 23:58:53.47
コードスニペットから初めて自動生成に飽き足らずAOPとかIL書き換えとか

859 :デフォルトの名無しさん:2011/03/02(水) 00:06:49.04
いろいろあって訳わからなくなるな

860 :デフォルトの名無しさん:2011/03/02(水) 00:19:55.42
訳分からなくなるなら使わなければいい。
使わなくても作れる。

861 :デフォルトの名無しさん:2011/03/02(水) 01:09:07.60
INotifyPropertyChanged自体が、依存関係プロバティーの代替えだからね

862 :デフォルトの名無しさん:2011/03/02(水) 01:18:11.85
INotifyPropertyChangedより依存プロパティの方がパフォーマンスも機能も優れてるけど
ViewModelではなんで使わないの?>>856のいうモデルとは違うだろうし。

863 :デフォルトの名無しさん:2011/03/02(水) 03:22:05.38
EventTriggerで使えるのはアニメーション要素だけ。
Style.Triggersはいろんなトリガ使える。
FrameworkElement.TriggersはEventTriggerだけ。

このへんの関係がよくわからん。EventTriggerでXAML内でさくっとプロパティ値変えたいのに、
それはハンドラでやれってか。

864 :デフォルトの名無しさん:2011/03/02(水) 04:58:17.45
複数のViewが必要になった時点でViewModelを作ることにしてる
最初からViewModelも作るのは不必要な抽象化だと思うし
既存コードを再利用する必要があるとかでない限り
ViewModelには依存プロパティすればいいと思う

865 :デフォルトの名無しさん:2011/03/02(水) 07:13:23.79
実際のところダイアログ部分だけコードビハインドに書いても
テストに大きな影響は無いと思うんだが。

866 :デフォルトの名無しさん:2011/03/02(水) 09:35:53.69
>>863
トリガは過去の遺物
VisualStateManagerを使う

867 :デフォルトの名無しさん:2011/03/02(水) 17:03:22.24
>>866
じゃあアニメーションはそれでやる。
イベントに対して(他の要素の)プロパティを変えるのはやっぱコードからしかないか。
ようやくXAMLでできる動的なことの限界が見えてきた気がする。

868 :デフォルトの名無しさん:2011/03/02(水) 19:41:03.74
>>867
一瞬で終わる離散キーフレームのアニメーションにする

869 :デフォルトの名無しさん:2011/03/02(水) 20:15:51.25
アニメーション適用してるプロパティに直接値入れてもアニメーションがプロパティ値を上書き
してる状態なので、アニメーションを削除しないとその値は有効にならない。
アニメ化したいプロパティはユーザーの希望でアニメーション無効にしてても、
実装自体は終始アニメーションで固めてしまったほうがいいってことかなあ。

870 :デフォルトの名無しさん:2011/03/03(木) 00:52:02.94
見た目に関する遷移は全部アニメーションでいい
Blend使うとそんな感じになる
論理的な状態の変化はVMかコードビハインドで

871 :デフォルトの名無しさん:2011/03/04(金) 15:29:43.00
VisualStateManagerの使い方が謎

872 :デフォルトの名無しさん:2011/03/04(金) 15:30:56.19
>>871
え・・・
そんなに難しくはないだろ

873 :デフォルトの名無しさん:2011/03/04(金) 15:43:45.76
XAMLで困るのは構文だな
やっぱBlend依存でやるしかないのかな?
どうもBlendいやなんだよな・・・

874 :デフォルトの名無しさん:2011/03/04(金) 17:16:29.68
嫌なら手書きでやれば

875 :デフォルトの名無しさん:2011/03/05(土) 22:13:21.54
アニメーションというか画像処理みたいなのしたいなぁ
画像にぼかしかけたり、モザイクとアニメーションを同時にやるとか

そういうのは結構難しいんだよな

876 :デフォルトの名無しさん:2011/03/05(土) 22:16:00.80
>>875
XAMLだけでやろうとしなければそれほどでもなくね?
一旦コードビハインド側でコード書いてXAMLに直せそうならやってみればいいし

877 :デフォルトの名無しさん:2011/03/05(土) 22:16:06.68
そういうのはピクセルシェーダを使う
仕組みが分かれば超簡単でクソ速い

878 :デフォルトの名無しさん:2011/03/05(土) 22:21:06.22
>>875
Effectじゃだめじょん?

879 :デフォルトの名無しさん:2011/03/05(土) 22:23:02.88
>>875
http://wpffx.codeplex.com/
ピクセルシェーダのサンプル

880 :デフォルトの名無しさん:2011/03/06(日) 08:30:27.44
>>871
Blend 使えば簡単なんだけどね。
Visual Studio のライセンスで Blend 自由に使えればいいのに・・・

881 :デフォルトの名無しさん:2011/03/06(日) 08:33:51.09
パワーマシン上で仮想マシン構築して90日間のお試しを・・・

実行するかどうかはあなた次第
というかそんなに難しいか?

というかそういうtipsサイトってないのかな?

みんなツール依存なの?

882 :デフォルトの名無しさん:2011/03/06(日) 16:37:22.47
MVVMのコマンド内で、処理分岐してWindow クローズするか、別Window起動するか、もしくはメッセージ表示して処理抜けるか考えてみたけど、
Windowクローズするならイベントハンドラにしないと無理そうなんだと思うんですが、どうよ?


883 :デフォルトの名無しさん:2011/03/06(日) 16:45:25.31
>>881
きっちりMVVM的にやるなら、
PrismのInteractionRequestなりMVVM LightのMessengerなりつかって
VMからViewへメッセージ投げるべき。

View 内に完結してやるにしても、
Button.Click とかのイベントハンドラーで Close() するのはいまいちで、
Button.Command に ApplicationCommands.Close を指定した上で、
CommandBindings で Close() する方がいいと思う。

884 :デフォルトの名無しさん:2011/03/06(日) 17:01:13.76
>>882
インターフェイスを使うのもアリ
interface IWindowService {
void CloseWindow(string windowName);
void ShowWindow(string windowName);
}
例えばこういうのを実装してViewModelのIWindowService型のプロパティに渡しておく
これだとウィンドウ剥き出しすぎるからもうちょっと抽象的な名前のほうがいいかもしれん
メッセージよりはわかりやすくて使い回しも利く

885 :デフォルトの名無しさん:2011/03/08(火) 10:09:04.22
メニューに割り当てるショートカットキーについて質問です。

↓みたいにXMLファイルをバインディングするのと
<MenuItem Header="{Binding Source={StaticResource Strings},XPath=String[@name\=\'menu1\']/@value}" >

↓みたいにショートカットを指定するのを両立させるにはどうしたらいいでしょうか?
<MenuItem Header="File(_F)"/>


886 :デフォルトの名無しさん:2011/03/08(火) 10:42:16.42
ファイル分けたいだけなんだったら
そのXMLファイルをResourceDictionaryのXAMLにすればいい
XAMLが嫌で俺XMLで書きたいなら
XSLTでXAMLに変換するとかXLINQでコードでMenuItem作るとか
メニューなんてアプリ中にいくつもあるもんじゃないんだから、
悩んでる暇があったらそれくらいコード書け

887 :デフォルトの名無しさん:2011/03/08(火) 11:59:57.33
ウィンドウに貼り付けた画像の指定色を透過させるにはどうすればいいんですか?

C#

Window2 w2 = new Window2();

Background = Transparent;
AllowsTransparency = true;
OpacityMask = White;

w2.Show();


XAML

<Grid>
<Image Source="test.jpg" />
</Grid>

これでtest.jpgの画像で白い部分を透過させたいんですが透過しません
jpgもC#で違う画像を指定して入れ替えて使いたいんですが、どう書けば良いんですか?

888 :デフォルトの名無しさん:2011/03/08(火) 12:09:23.63
OpacityMaskはそのブラシでコントロール全体を塗りつぶしたと仮定したときのアルファチャンネルの値が
コントロールの透明度として使われるというもの。特定の色を透明にするというようなことはできない。
だいたい、jpgは白で塗りつぶしても正確に白にはならないのでそういう用途には不向き。
アルファPNG使いましょう。

889 :デフォルトの名無しさん:2011/03/08(火) 12:09:42.54
jpgの白く見える部分は白じゃない

890 :デフォルトの名無しさん:2011/03/08(火) 12:30:39.62
すげーかっこいいーできたありがとう!

891 :デフォルトの名無しさん:2011/03/08(火) 12:56:49.74
WPFは結局流行らなかったね

892 :デフォルトの名無しさん:2011/03/08(火) 13:13:47.25
マイブームきてんよ

893 :デフォルトの名無しさん:2011/03/08(火) 13:16:14.57
ほんまにね

894 :デフォルトの名無しさん:2011/03/08(火) 13:16:25.75
XPが消える頃に流行りはじめるんじゃね

895 :デフォルトの名無しさん:2011/03/08(火) 14:12:27.70
なんでWPFはゲームに向かないの?
サンプルにゲームがあるんだけど

896 :デフォルトの名無しさん:2011/03/08(火) 14:14:27.69
WPFが流行らない理由

Microsoftが「かっこいい見た目」を前面にだしすぎたため
「かっこいいのを作るだけが目的」と誤解されている

C#だけでなく、ザムルも覚える必要がある

勉強ページや勉強本が少なく、自分で考えても車輪の再発明よりむしろ劣化にしかならない

897 :デフォルトの名無しさん:2011/03/08(火) 14:26:18.40
業務で使いそうなDataGridなんか特に重い
JavaのJTableは重くならないために中はコンポーネントじゃなくて独自実装になってるというに
WPFのはスクロールしただけで中のコンポーネントの幅をみな再計算するため酷い重さ

898 :デフォルトの名無しさん:2011/03/08(火) 14:47:31.55
>>895
ゲームの描画なんて画像と文字と線を指定位置に描画することさえできれば充分なので
Direct3DやXNAのような低レベルなAPIでも無問題だから
Silverlightならクロスプラットフォームだしブラウザ上で動かせるのでメリットはあるが
WPFでゲームを作るメリットはない
ベクターベースのゲームならメリットはあるかもしれないけどね

899 :デフォルトの名無しさん:2011/03/08(火) 14:53:18.36
>>896
またオサレGUIかw

900 :デフォルトの名無しさん:2011/03/08(火) 15:12:57.98
表現力と聞いてRIAに対するflasherと同じ発想しかできないのが悲しい。

901 :デフォルトの名無しさん:2011/03/08(火) 15:34:31.13
業務向けの便利コントロールは完全にSilverlight優先
WPFの次のバージョンではSilverlightのホスティングに対応するらしいから、
いずれはWPFのUIといえばウィンドウいっぱいにSilverlightHostコントロールを貼り付けただけになるんだろうなw

902 :デフォルトの名無しさん:2011/03/08(火) 15:41:54.19
>>901
>WPFのUIといえばウィンドウいっぱいにSilverlightHostコントロールを貼り付けただけになるんだろうなw
それでいいと思うよw

903 :デフォルトの名無しさん:2011/03/08(火) 15:45:03.42
.NET Frameworkのサブセットの機能で十分なやつはSilverlightでいいよ。

904 :デフォルトの名無しさん:2011/03/08(火) 15:48:22.00
描画と入力だけSilverlight使えばいいわけでしょ
SilvelrightはActiveXコントロールとしてホスティングできるから、
フルセットの.NETからSilverlightのVisualTreeを操作できるように橋渡ししてやればいいだけ
現在のSilverlight4+.NET4でも実現は難しくないはず

905 :デフォルトの名無しさん:2011/03/08(火) 16:33:17.89
Blendのストーリーボードで卵を消しても範囲だけ残るんですがこれはどうすれば消えますか?

906 :デフォルトの名無しさん:2011/03/08(火) 20:30:00.92
<Style TargetType="Button">...

みたいにx:Keyを付けないと
private void Button_Click(object sender, RoutedEventArgs e)
{
var resource = (ResourceDictionary)Application.LoadComponent(new Uri("Dictionary1.xaml", UriKind.Relative));
grid.Resources = resource;
}
のように動的にリソースを入れ替えても瞬時に切り替わるけど、
x:Keyを明示的に付けてStaticResourceとして参照してると切り替わらない(DynamicResourceならOK)。
x:Keyを付けないときはDynamicResourceと同じ扱いになるのかな?

907 :デフォルトの名無しさん:2011/03/08(火) 20:57:37.77
>>895
正確には、アクションゲームみたいなフレームごとに描画しなおすタイプのゲームに向かない。
WPFはイベント駆動で画面再描画することを前提にパフォーマンス最適化されてる。

908 :デフォルトの名無しさん:2011/03/08(火) 22:54:21.15
>>896
実際、資料が少ないのが厳しいな
WPF解説してるサイトとかほとんどないし、とっかっかりが無い
Googleで「WPF 入門」で検索しても、1ページ(10件)目に出てくるのは
上から順に

企業サイト
http://www.atmarkit.co.jp/fdotnet/chushin/introwpf_index/index.html
http://msdn.microsoft.com/ja-jp/library/ms771449(v=vs.80).aspx
http://codezine.jp/article/detail/910
http://codezine.jp/article/detail/928

個人サイト
http://d.hatena.ne.jp/hilapon/20100520/1274374572
http://z80a.blog48.fc2.com/blog-category-38.html
http://blogs.wankuma.com/kzt/category/2039.aspx

これくらいしか有用なページ無いもんな
2ページ以降は似たようなちょっとした情報ばかりだし

909 :デフォルトの名無しさん:2011/03/08(火) 23:00:22.77
>>908
WPFやSLのお作法でいきなり作ろうと構えるとそれだけで負担になるので
とりあえずは名前付けてイベントハンドラ使って従来の方法で触ってみるのが
一番だよ。

その中で従来の方法で書いたコードをバインドなどWPFやSLのお作法で
書き直すとどうなるかってアプローチが一番いいと思う

大体の人はWinFormになれてるんだし

910 :906:2011/03/08(火) 23:22:56.90
http://msdn.microsoft.com/ja-jp/library/system.windows.application.resources.aspx
ここによると
>また、リソース システムは、リソースが変更された場合に、そのリソースにバインドされている要素プロパティが自動的に更新されて変更を反映するようにします。

とあるので、リソースを入れ替えたら勝手に反映してくれるわけだ。
でもx:Keyを付けたリソースをStaticResourceでバインドしてると勝手に反映してくれないので、
入れ替えるリソースファイルにx:Keyの付いたリソースがあるならDynamicResourceでバインドしておく。

こんな理解でおk?

911 :デフォルトの名無しさん:2011/03/09(水) 01:51:46.76
>>909
WPFで一番戸惑ったのはポトペタでGUI作りにくかったことだな
Blend抜きだとタグを直接書いた方が楽だなんて何処にも書いていないし

912 :デフォルトの名無しさん:2011/03/09(水) 02:43:59.31
実行時までコントロールの数が不定のインターフェースって
MVVMの流儀だと、どう実装したらいいの?

例えば、接続されているハードウェアを列挙して、アイコン付きの
ラジオボタンあたりで選択させたいみたいな状況です。
(NVIDIAコントロールパネルのディスプレイ周り等)

913 :デフォルトの名無しさん:2011/03/09(水) 03:34:31.94
ObservableCollection<T>に突っ込んでListBoxにでもバインディングしとけばいい。

914 :デフォルトの名無しさん:2011/03/09(水) 18:24:06.57
((Storyboard)FindResource("Story")).Begin(this);
で例外がでるんですが、ストーリーボードのリソースはXAMLから検索してくれるんじゃないんですか?
<Storyboard x:Key="Story">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="SB">


915 :デフォルトの名無しさん:2011/03/09(水) 19:09:05.30
Sliderの値を整数で取得したいのですが、
値を整数で変化させるにはどうしたらいいですか?

916 :デフォルトの名無しさん:2011/03/09(水) 19:12:05.41
>>915
数値としてならConverter書いた方がいいのかな?
文字で欲しいのならStringFormat

917 :デフォルトの名無しさん:2011/03/10(木) 00:18:44.42
WPF/Silverlightけちょんけちょんだな
http://www.infoq.com/jp/news/2011/03/WinForms-ERP

918 :デフォルトの名無しさん:2011/03/10(木) 00:26:07.76
>>917
WPFはまあ・・・あれだがSLはいいと思うんだけどなあ・・・
やっぱりFlashとかの方が歴史が長いだけに開発者が多いので
厳しい目で見られるってことなのかね?

919 :デフォルトの名無しさん:2011/03/10(木) 00:36:10.64
「大手のコンポーネント開発元がWinFormsを切り捨てたから一部のユーザーが怒っている」
というだけの記事だろ

920 :デフォルトの名無しさん:2011/03/10(木) 00:38:15.63
"A Case for WinForms"が「WinFormsの場合」になるのか
相変わらずの超翻訳で安心した

921 :デフォルトの名無しさん:2011/03/10(木) 00:51:50.99
そりゃ今までWinForms用のDevExpressのコンポーネント使ってた人にとっては
切り捨てられたらショックだろうな
逆にWPF切り捨てならWinForms叩きでもっと荒れただろうな
別にただそれだけのこと

922 :デフォルトの名無しさん:2011/03/10(木) 19:40:01.79
WPFでユーチューブみたいなストリーミング再生をするにはどうすればいいのでしょうか?
MediaElement.SetSourceで出来そうだけどSilverlight限定?

923 :デフォルトの名無しさん:2011/03/11(金) 17:28:01.86
MSDNでhttp://www.diskspacefan.com/と同じようなサンプルを見た記憶があるんですが、
見つかりません
ご存知の方いませんか

924 :デフォルトの名無しさん:2011/03/15(火) 21:48:43.64
UIを複数のUserControlで作っていて、共通の部分がでてきたので一元化したいんだけど、
Xamlとコードの両方に共通化したい部分がある場合はCustomControl化してしまったほうがいいの?
デザイナーによる支援が貧弱になるのは痛いけど、UserControlを継承して…ってのはなんか違う気がする。

925 :デフォルトの名無しさん:2011/03/15(火) 22:02:16.25
>>922
直接URL渡せばWMPで再生できるなら再生できるよ
>>924
XAMLも一緒ならUserControlでいい
カスタムコントロールはXAML(テンプレート)とコードを分離できるコントロールを作るためのもんだ

926 :デフォルトの名無しさん:2011/03/15(火) 22:33:15.69
MSのガイドラインに沿ったもの作ろうとすると途端にしんどいな

927 :デフォルトの名無しさん:2011/03/15(火) 23:01:20.41
>>925
UserControlの継承はやり方がよくわからんです。
継承元(一元化したい部分を含んでいる)はコードのみで書かないとうまくいかない感じです。

928 :デフォルトの名無しさん:2011/03/15(火) 23:06:02.25
・共通部分をまた別のUserControlとして括り出せないか
・コードをビヘイビアとして再利用できないか
を検討してね

929 :デフォルトの名無しさん:2011/03/15(火) 23:15:44.07
>>928
上が一番簡単そうだけど管理が煩わしそう。
下は今回のケースなら適用できそうです。
XAMLはResourceとして括れるだけ括ってみます。

930 :デフォルトの名無しさん:2011/03/15(火) 23:19:12.21
>>929
プレイヤーを起動すれば?

931 :デフォルトの名無しさん:2011/03/17(木) 01:07:26.98
DOBON.NET の中の人は
WPF攻略しないの?

932 :デフォルトの名無しさん:2011/03/17(木) 01:55:35.10
簡単な方のビヘイビア(添付ビヘイビア)だとインスタンスフィールド持てないので困った。
めんどうだけどBlendの方のビヘイビア使うべきか。

933 :デフォルトの名無しさん:2011/03/17(木) 04:04:36.19
どぼんのひともう死んでるんじゃないの?
情報も古いままだし、初心者とって紛らわしい使えないサイト

934 :デフォルトの名無しさん:2011/03/17(木) 08:56:08.38
初心者は>>908のサイト見てれば基本的なことは分かる。
これテンプレに入れといてもいいかもしれない。

935 :デフォルトの名無しさん:2011/03/17(木) 22:14:40.14
Commandが失敗したことってどう通知したらいいんだろう

936 :デフォルトの名無しさん:2011/03/18(金) 02:28:51.68
WPFの資料が少ない最大原因は
Expression Blendとかいうのがなかったらきつすぎるから。Visual StudioだけでやるならWindows Form のほうがいいし。
ごく一部の専門家が使うイメージだ。
解説ペーjなんて作っても
WPFやるならExpression Blendを買おう。
これ買ったこと前提ですすめます
なんてやったら、そもそもそんなの買うようなのは解説ペーjなんてなくてもMicrosoftのページでいいだろうし全然よんでもらえないし
かといってExpressionなしでやるのも
なにこれ?XAMLでアニメーションとか依存プロパティとかテンプレート作るのコード複雑になりすぎてちょっと無理ある
でもアニメーションとか使わないんだったらWindows Formでよくね?ってなるし。

937 :デフォルトの名無しさん:2011/03/18(金) 02:45:02.42
書き込む前に推敲した方がいい

938 :デフォルトの名無しさん:2011/03/18(金) 06:33:26.31
>936
WPFでも、Formsで実現できるレベルの事しかしないならBlendなんか要らん。
つか、使ってもたいして楽にならんよ。


939 :デフォルトの名無しさん:2011/03/18(金) 09:46:01.12
>>935
バインディングの失敗とは違って
制御はコードにあるんだからどうとでも
好きにできるだろ

940 :デフォルトの名無しさん:2011/03/18(金) 12:45:08.22
アニメーションなんかより

レイアウトエンジンの有無
半透明のサポート

の方がよっぽど需要。
これらはBlendが無くても十分役立つ。

941 :デフォルトの名無しさん:2011/03/18(金) 15:04:29.42
Blendのテストデータを自動生成する機能だけはVSにも欲しい
バインディングの設定自体はVSのデザイナでも十分やれるけど、
BlendがVMのデータを適当に自動生成してくれて、プレビューしながらUI作れるのは便利

942 :デフォルトの名無しさん:2011/03/18(金) 15:39:53.35
うむ
BlendはVS2010以上に重いし

943 :デフォルトの名無しさん:2011/03/18(金) 16:54:47.30
そろそろ仮想PC上にWindowsとBlend体験版をインストールしなおす時期だお…

944 :デフォルトの名無しさん:2011/03/18(金) 17:37:18.25
昨日削っていいから無料版Blend出して欲しい

945 :デフォルトの名無しさん:2011/03/18(金) 17:50:23.39
BlendExpress

・・・・そうなったらおれも使う

946 :デフォルトの名無しさん:2011/03/18(金) 19:21:02.77
無料版を出すくらいならVisualStudioに統合してくれと思うが。

947 :デフォルトの名無しさん:2011/03/18(金) 20:56:55.34
同意
全く分けてる意味無いと思う
こんなもんプログラム書けない人が使えるわけないわ
ビヘイビアとかInteractionRequestとか、どんどん本末転倒な方向に進んでる

948 :デフォルトの名無しさん:2011/03/18(金) 21:54:58.29
WPFはオワコン

949 :デフォルトの名無しさん:2011/03/18(金) 22:08:22.83
プログラマが作業の手間を軽減させるのであればいいソフトだ。
デザイナーはDesign使ってろってこった。

950 :デフォルトの名無しさん:2011/03/18(金) 22:16:13.60
デザイナとの分業とか、夢見てちゃだめだと思うわ。
デザイナ向けツールはあっても良いけど、VS単体でプログラマが作業できるようにならないと、WPFなんて絶対流行らんわ。

951 :デフォルトの名無しさん:2011/03/18(金) 22:20:45.10
分担するということは人件費がかかるということ
そんなことできる会社が日本のどこにある

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!

967 :964: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/

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

216 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)