WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part10
さすがオワコンと自虐せざるを得ない
悲
いや、まだオワコンにはなっていない
Jupiter(ネイティブ版WPF)が出てからが真のオワコンだ
>>1乙
JupiterはXAMLベースになる見込みだから、WPFの進化であって終わるってことはないんじゃない?
いや、今年1月の情報だから方向転換してるんならわからんけど…
なにそれ、早いの?
C#で使えるの?
なにが変わるの?
WPFって、
やたらとGCに負荷をかけたり、
アンマネージリソースをGCに頼らずに開放する手段がなくてメモリ不足に陥ったり、
静的フィールドからたどれる所に相互参照が発生してメモリークしたりと、
GCをよく理解していない奴が作ったような感じだった。
ネイティブ化でGCが不要になって、それが改善されるなら大歓迎だ。
イベントハンドラで参照が残って解放されないのは厄介だな。
WeakEventManagerは面倒臭いし。
興味はあるんだけどどうなの?WPFって
デザイナと分業するならいいんだろうけど、
ホントにそんな事してるの?
他にWPFを採用するメリットがあるの?
サードのUIコンポーネント導入すればそれだけでCoolなアプリになっちゃう?
MSはWPF一本に開発リソースを絞ったんだから「他に選択肢はない」というのが正しい。
formsに戻るのは自由だけど「win7はクソ。xpで充分」っていってるパソコン大先生と同レベル。
ただC#を7割がた理解してないとwpfを読み解くことすら難しいのは事実。
WinFormsを使ってて、Win32API由来の制限がうぜぇぇぇと思うなら役に立つ。
そうでないなら、
頭がWin32APIの常識に凝り固まっているので、
WPFを採用したところで何も変わらない。
サードのUIコンポーネントは、WinFormsより特別優れているという事はない。
MVVMの採用が決まっているなら、WinFormsより使いやすいかな、という程度。
デザイナとの分業は、XAMLに理解のあるデザイナがいれば、
WinFormsよりはるかにやりやすいが、それでも面倒。
13 :
デフォルトの名無しさん:2011/09/11(日) 15:45:40.62
>11
>ただC#を7割がた理解してないとwpfを読み解くことすら難しいのは事実。
C#でなくてもVB.NETそこそこ使いこなせてれば大丈夫。
VB.NETそこそこ 「使いこなせてれば」 だけどねw
>>11 忘れてたそうだったね
従来通りのUIでよければ変なことせずWPFで同じ見た目のUIを構築すればよく、
CoolなUIにしたければ相応の準備、体制を整えて新しい手法で作りましょう。
という方針でいい?
もう一度勉強してみようかな〜
標準でMVVMサポートして、デザイナに組み込んでほしいわあ。
16 :
デフォルトの名無しさん:2011/09/12(月) 00:06:53.73
WPF3.5, C#で書いています。
デザイナに Label を以下のように並べており、
デフォルトでは非表示にしています。
[ Label Neme = "label_result1" ]
[ Label Neme = "label_result2" ]
[ Label Neme = "label_result3" ]
[ Label Neme = "label_result4" ]
そして、コードビハインドにて、 List<String> listResult
を作っていまして、Addされる要素が1〜4個で可変です。
ここで、コード上で
for (int i=0; i<listResult.Count; i++) {
label_result [i].Visibility = System.Windows.Visibility.Visible; //★
label_result [i].Content = listResult[i];
}
といったことをしたいのですが、★の部分は明らかに誤りのコードです。
上記のように Name で設定したものに対して
for 文内でカウント要素 i を使って処理を行う、
みたいなことはできますでしょうか?
出来るのでしたら方法をお教え願います。
>16
1〜4個程度なら ViewModel との DataBinding でなんとか対処できるだろ。
少し頭捻って考えた方だいいよ。
18 :
16:2011/09/12(月) 01:11:16.76
>>17 ありがとうございます。
WPFを触っていながら、Bindingは避けていたので。
頭を捻るための前提知識が無い状態のようですので、
今回はswitch case で逃げることにします。
最大4個程度なので。
xamlはWQHDモニタ欲しくなってくるな
const Stringを、nullではないStringから
作ることは不可能でしょうか?
やりたいことは、
・xmlから文字列を読み込む
・例えば、"犬"、"猿"、"雉"とする
・switch caseにて、文字列が上記のどれと一致するのか比較する
というものです。
caseにあてるStringはconstである必要がありますが、
xmlから読み込んだものを用いる方法は
ありますでしょうか?
String.Copy()など試しましたが駄目でした。
>>21 var dict = new Dictionary<string, string>();
foreach (var element in xml) dict.Add(element.Attribute("日本語"), element.Attribute("英語"));
string input = Console.ReadLine();
Console.WriteLine("{0}は英語で{1}といいます。", input, dict[input]);
switch使わないでこんな風にする
WPF全く関係ないからC#スレ行こうよ
>>21 constってのはコンパイル時に決まる定数だから、
実行時にxmlから読み込むことは不可能。
コンパイル時なら、T4を使えば可能。
>>22 勉強します。
>>23 やはりそうですよね。
ありがとうございました。
>18
>WPFを触っていながら、Bindingは避けていたので。
WPF は Binding が前提ですよ。でないとメモリリークや想定外のバグを生みます。
>>25 横からだけど、そうなの?
どっか説明書いてあるとこない?
ちょい質問.
DataGridBoundColumnのBindingプロパティは,
『Binding プロパティでは、列で、データ グリッドのバインド先の ItemsSource のプロパティを指定することが可能です。』
ってmsdnに書いてあるけど,
逆に『それ以外のバインディングはできません』ってことなの?
MultiBinding使って,<Binding ElementName="〜", Path="〜" />とかやると,
その部分はDependencyProperty.UnsetValueしか返ってこない.
Datagridを使う場合どのようにしたらいいか
参考になるサイトはないですか?
できれば、Listを使うものとデータベースをもとにして使う場合の
二通りあれば嬉しいです
30 :
デフォルトの名無しさん:2011/09/13(火) 22:51:24.14
前スレで TextBlock の途中で色を変える方法が出てたけども、
Windows 7 での『検索』の結果みたく、マッチした文字列を
角丸な四角で強調表示したいとなったら、
Adorner は Inline に対して使えないし、それこそ、
StackPanel に並べる以外に方法ないんだろうか?
その方法で実装はしてみたのだけれど、とにかく遅いので
いい方法があったら教えろください。
31 :
デフォルトの名無しさん:2011/09/13(火) 23:00:59.73
InlineUIContainerで
<Window>
<i:Interaction.Triggers>
...
<Grid>
...
みたいなコード目にするんだけど、Windowタグ内の要素はWindow.Contentに割り当てられるのに
上の<i:Interaction.Triggers>はなんでそこに宣言できるの?Windowの何に割り当てられてるの?
33 :
デフォルトの名無しさん:2011/09/13(火) 23:55:11.40
添付プロパティというやつ
他のクラスのプロパティ(i:Interaction.Triggers)を(Windowが)持てる仕組み
Canvas.Left="100"とかと一緒
35 :
30:2011/09/14(水) 00:56:10.40
>>31 こんなのがあったのか・・・。
ありがとう。
>>27 DataGridCellの中の要素から見るとDataContextがItemsSourceのオブジェクトになってて
Templateで展開されてるわけだからElementNameで検索する範囲はDataGridCellの中の要素のみ。
外側のElementNameを指定してもスコープの範囲外だから見つからない。
>>36 ありがとうございます.
XAMLスコープが(暗黙的な)Template内で完結しているということですね.
ElementNameの代わりにRelativeSourceを使うとバインディングを実現できました.
39 :
デフォルトの名無しさん:2011/09/14(水) 12:09:40.18
これ今のAPIはSilverlightに任せてWPF作り直す宣言じゃね?
まぁ移行は困難ではないでしょ
XAML=WPF?
せっかく新UI提供されてもWPFべーすじゃなあ
>>41 違うんじゃね?
まあWPFやSilverLightなどの仲間が増えたってことだろうけど
VS11、ExpressだからかWPFないけど
出力の種類からMetroかWinMDかWPFか選ぶ感じか
>>41 Metro StyleアプリはWPFじゃないぞ
新たにWindows.UI.Xaml名前空間があるし
windows.applicationmodel膨大なんだが
WPFライブラリもここに乗っかるべき技術じゃないのか
47 :
デフォルトの名無しさん:2011/09/14(水) 15:10:27.98
MetroUIってWPFや従来のWinFormのような部品はそれほど
いらないだろ
シンプルにすることでコンパクト軽量化するんだし
WPFの仕組みはARM環境では重過ぎると思う
XAML路線継続なら問題ないな
49 :
デフォルトの名無しさん:2011/09/14(水) 15:22:08.10
>>48 そうそう
タッチ特化のコンパクト版がWinRTなだけでしょ
XAMLの基本スタイルはかわらなくて部品が減ってるだけだと思う
WPFオワタ
ApplicationModelが.NET4.5みたいだが
図を見るとその部分だけがWinRTベースか
ARM対応ライブラリかどうかだけの区分けじゃないのか
WinRTはもっさりしない為の仕組みが徹底してるね
これは本当にWPFは終わりかも
WinRTベースのフォームっぽいのあるの?
Silverlightからの移植がやたら強調されてるね
WP7との統合を意識してるんだな
WPF…
C#アプリがメイン(他もだけど)になるだけで素晴らしいことだ。
C++からでもXAML使えるんでしょ?
ってことはSilverlightみたいにネイティブでXAML処理するんだろう
結局、マネージコードでフルスクラッチでGUI作っても使い物にならないという
Javaと同じ結論に達したわけだな
c++からもマネージだろ
はずかしいから言わせるなよ…
59 :
デフォルトの名無しさん:2011/09/14(水) 21:57:30.89
ToggleButton で IsChecked = True のときの背景色変えるのって、
ControlTemplate 使うしかないって認識であってる?
61 :
デフォルトの名無しさん:2011/09/15(木) 01:55:38.26
スルーしてあげるのが大人の優しさ
Livetとかいうの便利そうだから入れてみたけど、
ViewModelで定義するプロパティはINotifyPropertyChanged使うんだな。
依存プロパティのほうがパフォーマンスで有利なのにそれを使わないのはどうして?
依存プロパティなんて良くも悪くもWPFの一部だろ
使用的には屑中の屑
将来的にあんな仕組みが大出振って歩くなんておかしいよ
ViewModelはあくまでモデルなんで、理想的にはWPFに一切依存せずに
WinFormsだろうとASP.NETだろうとViewの差し替えだけで対応できなきゃいけない
MetroもMVVMでいいんだよな?
みんなwin8とVS11 Expressを入れてないのか
うちはADSLの1Mで落とせない....
なぜに「あくまでモデル」と言い切れるのか、理解不能なんですが・・・
日本語の勉強からすれば
WPFはなかったことに
いいじゃない?
winRTスレが立ったらそっちに行けばいいんでしょ?
ViewModelファイル膨大になるんだが
73 :
デフォルトの名無しさん:2011/09/15(木) 18:40:13.75
あ
もうこのスレ次からWinRTスレにしちゃえょ
75 :
74:2011/09/15(木) 19:25:09.49
なんか気持ちの悪いtypoしてしまった、すまん
WinRTってまったくの新規?
既存の集合体?
新規だけどコントロールのクラス構成とかは部分部分似てる
WinRT部分がx86、ARM共通APIだと思うんだが
ARM版には既存のエクスプローラーとかないのか?
WinRTはMetroアプリ以外でも使うのか?
WinRTはGUIだけじゃ無いよね。
将来はWin32のUSERも置き換えるもの?
ハンドルの呪いから逃れられるならなんでもいいと思う
SilverLightはDynamicResourceをサポートしないのがいけてなかったのだが
新しいのではDynamicResourceは使えるの?
Silverlightはデスクトップ向けだと前から言ってるのに何を今更
それにSilverlightからMetroStyleへはほとんどコードを書き換えずに移行できると強調されてただろ
どっちかというとSilverlightをWindowsに組み込むような形だ
似たようなフレームワーク、拡張APIばかり増えるな
OS開発のほうは.net嫌いらしいし
MFC vs metroで決着はつくんだろうか
じゃあブラウザ上で動くのはHTML5+Javascriptに一本化されていくってことか。
DRM目当てだった人はどうするんだろう。
SL5を保守してもらうしかないな
.NET4.5でInteraction標準化した?
89 :
デフォルトの名無しさん:2011/09/16(金) 21:48:27.51
カッコイイメニューが欲しいんだけど、
WPFでカスタムコントロールを作るか
サードパーティーでカスタムコントロールを作るか
どっちがいい?
いいってどういう基準で?
買えるなら買ったほうがいいに決まってるだろ
自作のバグだらけの糞コンポーネントよりちゃんとテストされた売り物の方が良いのは当たり前
すまん誤爆・・・
>>89 どういうメニューを作りたいかにもよるんじゃない?
blendをある程度のレベルで動かせるなら、サードのバグ対応の遅さにジレンマすることもあるだろうし…
でもそのレベルならわざわざ聞かないか?
とりあえずより分かり易いなら既存の考えに捕われる必要はないと思うが…
ComboBoxのBackColorを選択されたComboBoxItemのForeColorに
バインドしたいんだけどどうやればいいの?
自己解決した。
BindingのElementNameに自身を設定しないとダメなんだね。
操作に応じて要素をTransformさせる機能を実装してます。
Rotate、Scale、Translateを使うので、VMにあるプロパティとそれぞれのプロパティを
バインドする形を想定してましたが、計算に親要素と自身の要素が必要で、
VMが要素の参照を持つことになり不自然に思えます。
ビヘイビア内で計算しVMのプロパティへ反映させる手もありますが、
ビヘイビアがVMの参照を持つのはどうかなと…。
そもそもこの手のものはVでやるべきかもしれないので、
いっそのことビヘイビア内で全て完結させようかとも思いますが、良い設計方法があれば教えて下さい。
要素をTransformとかどう考えてもViewでしょ
全部ビヘイビアでいいよ
DatsGridで編集モードでないときにキー入力して編集モードに移るとき、
キー入力に対して入力制限設けたいんですが(数値のみ入力可能など)、
編集モードになってからはTextBoxと同じ要領てわできるんですけど、
編集モードでないときの入力ってどう制限したものでしょうか?
>>99 DataGridCellのPreviewTextInputあたりで制限する。
102 :
デフォルトの名無しさん:2011/09/19(月) 23:11:50.10
RichTextBox の Table で、
セル内のテキストのサイズに応じて自動でカラム幅を
設定することはできますか?
Grid で、ColumnDefinition Width=Auto にした時と同じにしたいんですが,
Table だと均等にしかならない感じです。
Microsoftは
WinForm
か
WPG
どっちでも好きなほうを使えってスタンスで
Winformは古いから切り捨てよう
とは考えてないんだな。
WPG…もういいから寝れよ…。
ListBoxのアイテムの幅をListBoxの幅に合わせたいときはどう書いたらいい?
横スクロールバーを出したくない。
>>106 HorizontalAlignment = "Stretch"
ListViewItemのControlTemplateをカスタマイズする必要があったような
WPFのWindowアプリケーションで、
起動時に数瞬だけWindowの中が白い状態になります。
この状態を無くす、あるいは、完全に読み込まれてから表示することはできますか?
splash画面出せよ
112 :
デフォルトの名無しさん:2011/09/20(火) 20:25:44.98
眼鏡に青いセロハンを貼る
Loadedイベントハンドラでウエイトかましとく
Binding bi = new Binding();
bi.Path = "Hoge";
Binding bi = new Binding();
bi.Path = new PropertyPath(HogeProperty);
どっち派?
リファクタリングを考えて下
下ならリフレクション回避できそう。
Silverlightだと下の方法ではBinding.Pathには使えないらしいけど。
>>114 下なんだけど、他のクラスのプロパティを指定するときに注意だな。
名前なら適切なのを使ってくれるけどDependencyPropertyを渡して
同じ名前で違うクラスのプロパティだったりすると意外と気づかない。
118 :
109:2011/09/21(水) 12:33:13.32
>>111 splash表示→白い画面→splash表示→画面内描画
となり、あまり意味がありませんでした
>>113 Loadedイベント発生時点で既に白い画面が表示されているようです
不可視で起動して立ち上がったら可視にでダメ?
controlを動的に生成するアプリを作ろうとするとwpfってマジ苦労するよね。
ネットで検索するとコントロールの宣言とかxamlの例ばっかりで、
コード側から初期化してgridのどこに配置するかとかの解説が全く見つからない。
<grid name="testgrid">
<Grid.Rowdefinitions height="*" />
<Grid.Rowdefinitions height="*" />
<Grid.ColumnDefiniions width="*" />
<Grid.ColumnDefiniions width="*" />
</grid>
とxamlで定義されてるとして、コードからrow1、column1の位置にボタンを配置するにはどうしたらいいん?
動的にコントロール追加なんてしないんだよ
バインディング先のコントロールにアイテムを追加するだけ
アイテムに対してどういうコントロールを生成するかはDataTemplateで定義する
いつでもどこでも俺の前に立ちふさがる敵…バインディング…
それじゃこの場合はgridのtestgridに対してバインドすりゃいいんかな?
んでどんなコントロールかはdatatemplateに書いとけばいいって?
例えばレイヤー代わりにCanvasを入れ子にしたいとき、
DataTemplateではどうやるんだ?
<Grid>
<Canvas>
<Image>
↓
<Grid>
<Canvas>
<Canvas>
<Canvas>
<Canvas>
<Rectangle>
という風にCanvasをユーザー操作で増減するケース。
何がしたいのか知らないけどさすがにそれは特殊すぎる
たとえばGridの行はGrid.SetRow(newControl, 2)のように指定する(添付プロパティという)
>>124 ShaderEffectを複数適用させたい時とか
BitmapEffectGroupに相当するのが無いもんで
>>123 こういうことしたいわけ?
DataTemplate template = new DataTemplate();
FrameworkElementFactory grid = new FrameworkElementFactory(typeof(Grid));
FrameworkElementFactory canvas = new FrameworkElementFactory(typeof(Canvas));
grid.AppendChild(canvas);
for (int i=0; i<COUNT: i++) {
FrameworkElementFactory canvas2 = new FrameworkElementFactory(typeof(Canvas));
canvas.AppendChild(canvas2);
canvas = canvas2;
}
template.VisualTree = grid;
>>126 おー、これならEffectの数に連動してCanvasのネストを作れる。
でもこのテンプレートで作ったそれぞれのCanvasにプロパティをバインドってできるの?
<Canvas Effect="{Binding Effects[0]}">
<Canvas Effect="{Binding Effects[1]}">
<Canvas Effect="{Binding Effects[2]}">
のように。
FrameworkElementFactory.SetBindingでよくね
目的が
>>125なら無理にバインディング使わなくていいでしょ
コードで書いてユーザーコントロールにまとめとけばいいよ
Canvasだとレイアウトが変わるから枠線のないBorder使ったほうが
C++ネイティブやJavaScriptからXAMLを使えるようになるようだけど
それもこのスレでいいのかな。
WinRTスレを立ててくれ
XAMLスレ立てて、
このスレはWPFスレにすればいいんじゃないか
スレ分け難しいよな、無駄に増えて過疎るのも嫌だが
.NETのMetroやらHTML5+JSやらもどこかわからんし
このスレはXAMLのスレじゃなくてWPFのスレだろ。
XAMLはWPFの構成要素の一つでしかない。
XAMLを使っていても、WPFとは別物のSilverlightやWP7は別スレだ。
WinRTはSilverlightやWP7以上にWPFとは別物なんだし、
別のスレで話した方がいいんじゃないか?
とりあえずWinRTスレでXAMLにMetro、C/C#/VB/HTML5と全部扱って困ったら分ければいい
きっと詳しい人からしたら何をやってるんだって噴飯ものなのろうけど教えて。
c#コード側からlistviewを定義するやり方。
xaml難しいよ理解不能なのでコードからやろうとしたらこっちも理解不能だった。
ListViewItem lvi = new ListViewItem();
lvi.Content = new string[] { "test", "テスト", "asdf" };
ObservableCollection<ListViewItem> oclvi = new ObservableCollection<ListViewItem>();
oclvi.Add(lvi);
あとはoclviをListViewのItemsSourceに突っ込めんでる
これビルドできるし動くんだけど、出力ウィンドウに
System.Windows.Data Error: 4 :
Cannot find source for binding with reference
'RelativeSource FindAncestor, AncestorType=
'System.Windows.Controls.ItemsControl', AncestorLevel='1''.
BindingExpression:Path=
HorizontalContentAlignment; DataItem=null;
target element is 'ListViewItem' (Name='');
target property is 'HorizontalContentAlignment'
(type 'HorizontalAlignment')
って出るんだよ。何これ。
WinRTって中でネイティブでXAMLパーサやらWPF相当のことやってるってことなんかね。
C++&XAMLで高度なGUI作れるといいんだがメトロ専用になっちゃうのかな?できればデスクトップも作れるといいんだが
あの図から行くとメトロ専用だろうね
WinXPはともかく7では動いて欲しいなー
>>138 ListViewItemなんかいらない
文字列のコレクションをそのままListViewのItemSourceに突っ込め
細かいことはDataTemplateで定義
>>142 ListViewを作るだけだったらそれでもいいんだけど、
行ごとに文字の色とか大きさとか変えたいんだよ。
ObservableCollection<List<string>>とかをitemssourceにぶちこんでやれば、
エラーなく表示はできるけど、各行個別に色分けとか文字サイズ変えようとすると、
一旦ListViewにぶちこんだあとから、foreach(var lvi in ListView.items)で、
各行を取得して再設定してやるとかわけわからんことしなくちゃいかん。
でもこれだけならxamlでやれば簡単だ。それはよく分かる。
しかし、TabPageにTabItemが動的に追加され、TabItemごとにListViewが生成するとなると、
xamlで定義するやり方がさっぱりわからん。
上のレスで動的なコントロールの追加について触れられてるけど、
全然理解できん。
formアプリならすごく簡単なんだけど、wpfだとさっぱり。どうしてこんなに難しいんだろう。
Bindingを中心に考えれば随分すっきりすると思うんだけどな
> ObservableCollection<List<string>>とかをitemssourceにぶちこんでやれば、
> エラーなく表示はできるけど、各行個別に色分けとか文字サイズ変えようとすると、
色とか文字サイズとかを決める元となる(あるいはそのものの)データをVMに持たせて
DataTemplateでBindingすればいい
データ次第でがらっと変わるならItemTemplateSelectorでテンプレート丸ごと差し替えもできる
TabControlだって同様にバインディングとテンプレートで解決できるんじゃね?
Templete、Style、Triggerが分からんうちはどうしようもない
<ListView ItemsSource="{Binding Items}">
<ListView.View>
<GridView>
<GridViewColumn Header="test" Width="128" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" FontSize="{Binding}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new MainWindowViewModel();
}
}
public class MainWindowViewModel
{
public int[] Items { get; private set; }
public MainWindowViewModel()
{
Items = new[] { 70, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
}
}
ListViewのコレクションを直接触るのはやめたほうがいいな。
>>146 このコードが問題なく動くってところが怖い。
InitializeComponent();の次のDataContextってのは一体どこで宣言されてる変数なんだよ。
こんなコード通るわけ無いだろワロスとか思ってたらちゃんとビルドできるし。
どこにも宣言のない変数がいきなり出てきてそのまま使えるって何それこわい。
え?Windowクラスのプロパティだろ普通に
>>149 すまんがわからん。ひょっとして俺やばい?
正直まだコード書いちゃいけないレベル
むしろお前は今何をやっているんだ
DataContextは受け入れられないのに
InitializeComponentは受け入れられちゃうのか
良く分からん感性だ
wpfは完全素人だよ。
formsアプリの経験は2年くらい。
自作ソフトのformsアプリをwpfに移植してみようかなぁと思い立って、
挫折したところ。
この際WPFもWinFormsも忘れて1からC#を勉強しなおした方がいい
wpf理解不能なのでやっぱりformsに逃げ帰るよ。
DataContextも分からんこんな俺じゃ。
C#はまたきちんと勉強します…。
>>156 下手にWinFormsの知識があるとWPFの違いっぷりに混乱すると思う
まずはバインディングとテンプレート周辺を理解することを勧めるよ
そこさえ理解出来ればなんとかなると思うから
@ITのWPF入門記事読めばとりあえずかね知識は勉強できるんじゃね?
>>158 すごいね。ありがたい。
じっくり見させてもらいます。
できる人はパパっと作れるものなんだね。
winform → WPFだとまじめにやろうとすると混乱する
最初はバインディングとテンプレート周辺はあえて無視してコード書けばいい
徐々に覚えないと分からなくなる可能性が高い
WinFormsの知識とかもう業務上の保守でしか要らんだろ
WinRTに逃げますね
まだスレないよね
業務用のアプリはまだまだWinForm使ってる。
せめて、DataGridがまともになれば良いのだが。
WinForm使うのと
wpfでWinFormやるのはまた違うような
Window.Activated
が発火したときに、発火もとが
「タスクバーに表示されている実行中アプリを右クリック→閉じる」
の場合を判定したいのですが、どうすれば良いでしょうか?
上記処理の場合もアプリがActiveになるようで、
Activatedイベントの処理が走ってしまいます。
が、この場合は箸って欲しくないのです。
WPF3.5、C#です。よろしくおねがいします。
>>154 formsでも Invoke とか BeginInvoke とか使うと思うが
これもどこにも宣言されてないのになんで使えるのか疑問に思わなかったのか?
>>169 invokeはコントロール名.Invokeって使うから別に気にならんかった。
begininvokeも、delegate宣言して、宣言したdelegeteをさらにnewして使ってる。
こんな感じ。
delegate DG;
DG dg = new DG(適当なメソッド);
dg.begininvoke();
とか。
いきなりBegininvokeとかInvokeとか使わなかったなぁ。
常に自分で宣言した変数と組み合わせてたから、何も疑問には思わなかった。
LabelにDropされたデータをViewModelに渡すにはどう書けばいいの?
イベントハンドラでViewModelのメソッド呼べばいいよ
どうせコードビハインド0とか無理
渡したいデータ型のプロパティを持つDrop用のビヘイビアを用意してバインドするとか。
174 :
173:2011/09/25(日) 00:33:52.89
>>174 それは不便だろ
インターフェイス使うかコマンド受け取るかしてプッシュ型で通知できるようにしないと
>>170 とりあえず右クリックして定義へジャンプでDataContextとかどこで宣言されてるか出てくると思うが。
あと、delegateのBeginInvokeとControlのBeginInvokeは別物。
Win8はいろいろリボンUIになるんだね。ExplorerもWPFになるんかね?
VS11はリボンじゃないが純WPF化が進んでるな
リボンとWPFは直接関係ないけど
リボンは評判悪いのになんでごり押しするんだろうね
タブをダブルクリックすれば小さくなるの知らないとか
>>179 リボンは慣れの問題で、リボン自体への不満は意外に少ない
移行組が戸惑うのがアレだが
ツールバーのほうが作業性いいからな
リボンは違うページだと無駄なクリックが発生してめんどくさい
1時間使うならいいけど毎日8時間使うといらっとする
結局office系はリボン全部消して使ってる
文字色変更などはクイックアクセスボタンに登録して
リボンの下に表示させて旧ofifice風にして使ってる
リボンってツールバーにタブが付いただけに見えるんだが
そんな違うもんなの
画面幅によって表示の変わるクソ仕様のツールバー
ツールバーたくさんあるとモードによってツールバー自身の位置が変わるから
リボンのがいいわ
>>185 Window.Activatedでやる処理があるんだけど、
閉じる操作のときも処理走っちゃうから、判別したいってことでおk?
>>185 終了メッセージが飛んでくるだけだから判別できない
むしろ他の終了手段(メニュー?)のほうを検出すべき
189 :
デフォルトの名無しさん:2011/09/25(日) 11:38:31.02
リボンは、モード関係なくずっと出していたいボタンも隠れるのがな
確かに複雑なソフト作る時は有効だけど、機能が少ないソフトだと面積取るだけ
191 :
デフォルトの名無しさん:2011/09/25(日) 12:21:44.64
Win8エクスプローラーの小アイコンみたいなのが盛り込まれるんじゃね?
>>187 はい、そうです。
>>188 Win32のプロシージャをoverrideして
WM_CLOSE捕まえるしかないでしょうか。
194 :
193:2011/09/25(日) 13:59:37.35
あ、違いますね。
別ルートでフックしても
Activated内での判定をどうするのかが問題でした。。。
DatsGridのバインドが遅いのか、
画面表示後に列幅などが調整され、見苦しい状態です
なんとか改善できないんでしょうか?
列幅固定にしておけ。
じゃあ、列の仮想化は有効になってる?
WPFの入門書っていいのない?
エッセンシャルは無しで…
MSDNのドキュメントとサンプルソースをちゃんと読んでおけ。
今なら日本語ドキュメントもまともになってるし、いろいろ書いてあるから。
MVVMに関するドキュメントはWPFの理解に役に立つものは無いので無視していいけど。
201 :
デフォルトの名無しさん:2011/09/27(火) 01:47:03.43
.NETで組んだアプリのExitCodeについて質問です。
Win32 で組んだアプリ(win32.exe とする)の場合、
コマンドプロンプトで
> win32.exe
> echo %ERRORLEVEL%
とすると、win32.exe の終了コードが表示されます。
一方、WPFで組んだアプリ(wpf.exe とする)の場合、
同じようにコマンドプロンプトで
> wpf.exe
> echo %ERRORLEVEL%
としても、値は 0 しか表示されません。
ところが、WPFで組んだ別のアプリ(wpf2.exe とする)の中で
Process proc = new Process();
proc.StartInfo.FileName = {wpf.exe のフルパス};
proc.Start();
proc.WaitForExit();
if (proc.HasExited) {
MessageBox.Show(proc.ExitCode.ToString());
}
とすると、wpf.exe の終了コードが正しく表示されます。
これはどのような動作をしているのでしょうか?
なお、wpf.exe の終了コードの指定の仕方としては、以下の2通りを試しました。
1) Application.Current.Shutdown(0x1);
2) App.xaml.cs の Exit イベントの中で e.ApplicationExitCode = 0x1;
長文となってしまいましたが、宜しくお願いします。
wpf.exeがコンソールアプリとして作られてないんじゃね
WPF失敗なのに誰も責任取らないのはなぜ?
は?
ExpressionSDKに入ってるFluidMoveBehaviorの仕組みが知りたいんだけど解説してるとこない?
>>205 内部の話なら、LayoutUpdated をハンドルして RenderTransform に TranslateTransform とか突っ込んで前の位置から移動してるように見せてる
>>206 なるほど。
前の位置、現在の位置はTransformToVisualメソッド辺りで親座標を使って割り出す感じですかね。
wpfはdirectXをラップしたものだそうだけど
shapeはpolygonにテクスチャーを張ったものなんですか?
1行目から違います
おとといきやがれ
1枚のwindowテクスチャ作って中身全部描画してから
1枚のポリゴンに表示してるんですか?
それともUIelmentのような単位ごとにテクスチャ作って
複数のポリゴンを優先順位で順番にならべて表示してるんですか?
たまにドライバとか?の描画環境が悪いとボタンとか画像が斜めに真っ二つにずれる (長方形を構成する二つの三角ポリゴンがズレる) から
コントロール単位というか、描画コンテキスト単位なんじゃないですかね
212 :
sage:2011/09/28(水) 00:42:20.53
Silverlight で、画面に表示するコントロールのインスタンスを SingleTon な
プロパティに入れておいて、XAML 内で指定することってできますか?
ページロード時に毎回コントロールのインスタンスを作るのではなく、
一度生成したものを使い回したいという希望。
213 :
デフォルトの名無しさん:2011/09/28(水) 00:50:30.64
Silverlightは重くて使えないよ。
本のサンプルで見たけど俺のパソコン壊れそうだった
>>212 Silverlightはどうか知らないけどWPFは普通にできるよ。
>>214 お返事どうもです。WPF ではどのようにやるのでしょうか。
こちらで試してみたのは、リソースディクショナリにコントロールを記述しておいて、それを XAML 側から呼べば良いかと思ったのですが、
XAML でどのように書いて良いのか分からず。
<ContentControl Content="{StaticResource control}">
のように書いてみましたがダメでした。
x:Staticだよ。
IT先進国インドのヒンズー語版書籍は勘弁してください
インドなら普通に英語だと思うが
221 :
201:2011/09/28(水) 21:14:25.59
>>202 その通りでした。
コンソールアプリでないと
環境変数%ERRORLEVEL%に書き込めないんですね。
222 :
デフォルトの名無しさん:2011/10/02(日) 00:40:02.06
webの画像ボタンのようなボタンを作ることってできますか?
できますよ。
224 :
デフォルトの名無しさん:2011/10/02(日) 00:55:42.63
>>223 どこか詳しく説明してるサイトはありませんか?
詳しくも何もButtonのContentにImage入れればええねん
XAMLってどれぐらい手で修正するもん?
属性毎に改行入れたり整形してて疑問に思った
>>226 自分はケースによる…Blendで終えられるような画面だったらそんなに修正しないし、それ以上に凝った画面だったら結構手を入れる…
VSのみだとかなり手を入れそうな気がする…
Blend5は安くなってないかなあ
タダにしろよ
vs2010デザイナだとButtonのContentにImageを
ドロップしてもボタンにイメージ追加にならないよね
前のデザイナだとAlt押しながら追加できたそうだけど…
へえ、デザイナでデザインしないから知らなかった
即レスありがとうございます
デザイナでデザインしないとか存在意義が問われているな
Blendが別けられている以上、もともとオマケみたいなもんです
XAMLは手書き編集しやすくできてるから
HTML手書きするのと同じでデザイナをメインに使うやつもいれば手書きばっかりしてる奴もいる
デザイナとエディタ同時表示すると重いしな
たいていの職業デザイナーはHTML手書きなんかしないと突っ込んだらダメですか?
おそらくは。
HTML手書きが求められるのはPGの方だしな…
でもまあ、HTMLとXAMLを比較したらXAMLの方が好きだ
つまりデザイナーはBlendのデザイナ使ってマはVSでXAMLをゴリゴリするわけだな
外部のXMLをプロセスが異なる二つのアプリケーションでバインドすることは可能ですか?
Binding拡張は手書きじゃないときつい
Bindingぐらいまでは手書きで書いちゃうな。細かいデザインなんかはBlend使う。
Blendのバインディング便利だよ
サンプルデータ生成とかVSに欲しい
Enumをコンボボックスとかにバインディングするとき
表示名変えたかったらViewModelかました方がいい?
Converter噛ましておけば要らんだろ
Converterでもいいけど、使いまわさないんだったら
VM使わなくてもコードビハインドに依存関係プロパティ定義してバインドすればいい
249 :
デフォルトの名無しさん:2011/10/04(火) 00:12:38.67
Converterって元々はVMじゃなくてModelを直接バインドするためのテクノロジーだよな
ある意味簡易VMだよ
Xaml絡むと再利用できないコード多いよな
Viewに依存した所は仕方ないね。
これでも他のよりはかなりマシだから贅沢言うなって
Blendだとビヘイビアでデータソース更新したりできるんだよな
完全に本末転倒
C++でのGroupプロパティの様なものはありますか?
やりたいことは、
ボタンコントロールを複数配置して
キーボード操作によるフォーカス移動は
グループ内で閉じるというものです。
wpf、グループ、グルーピング、
コントロールのグルーピング、
など色々ググってみましたが
分かりませんでした。
フォーカスを制御したいのにフォーカスは検索キーワードに入らないのか?
とりあえずFocusManagerを調べてみて
>>254 あ、すみません。
フォーカス も調べていましたが、
教えていただいたものには
たどり着きませんでした。
調べてみます。ありがとうございます。
256 :
デフォルトの名無しさん:2011/10/04(火) 23:36:39.56
Window に RichTextBox 入れて SizeToContent = WidthAndHeight
にすると横幅がずいぶん広いんだけど、RichTextBox の横幅を
測る方法ってないの?
意味がわからん
RichTextBoxのサイズなんか自分で決めるか親のサイズで決まるもんだろ
FlowDocumentを表示させたいだけなら RichTextBoxなんか使わない
258 :
デフォルトの名無しさん:2011/10/05(水) 21:20:59.47
編集なしで表示だけでいいなら測る方法あるの?
画面に定規
260 :
デフォルトの名無しさん:2011/10/06(木) 16:00:34.96
バカは死んで
そういや、だいぶ前に画面上で長さを測る定規ソフトを作ったな。
WinFormだけど。
「テキストに幅なんてあるのか?」って言われてピンとこないなら向いてないからやめちまえ
無理してプログラムかくこたないだろ
Binding使わず開発するケースってある?
WinForms派の人が無理にWPF使おうとしているのがあまりにも痛々しくて方便として言うことはある
265 :
デフォルトの名無しさん:2011/10/06(木) 21:54:39.54
>>262 で、FlowDocument を表示するだけなら幅を測る方法あるの?
ないのに「表示させたいだけなら」って言ったの?
知らないならだまってればいいのに。
今更WinForms使うとしても中途半端になるから
Bindingは全く使わないようにするだろうな
っていうか幅とか指定しないんだったらFlowDocumentでなくていいでしょ
TextBlockにインライン突っ込めばサイズ測れる
268 :
デフォルトの名無しさん:2011/10/06(木) 23:03:59.80
まぁ、TextBlock だと Block はつっこめないんだけどな。
MVVMのVとVMについて、
VとVMの状態の通知はプロパティをバインディングして、
なんらかの処理をVとVM間で呼び出したいときはコマンド使ってる。
VからVMのコマンドを呼び出すのはよく見るけど逆は全く見ない。
VMからVのコマンド呼び出すのっておかしい?
VMがVのコマンドを呼び出すのは結合が強すぎるんだと思う
あんまりVMがVを操作する格好だとMVVMというよりMVPになっちゃうよ
>>270 うーむ、そうか…。
イベント的なもので通知する形をとると。
Messengerパターンとかいうの利用するのか。
ダイアログの表示とかならインターフェース経由のサービス呼び出しみたいな形で
MVVMの外でやればいいよ
C++/CLIで.NET&XAML使ってWPFプログラミングってできるんだっけ?
一応出来るけどC#でやる方が捗るぞ
やっぱ一応レベルだよねぇ。萎えるなあ
プロジェクトテンプレートないから空のプロジェクト作るとこから始めないといけない。
C++/CLIを使えるならC#も使えるわけで、それだったら当然C#選ぶよね。
WinRT見越して、今からC++とXAML使った開発に慣れとこうって話なのかな?
Win8売れてMetroこけたらWinRTにWindowクラスを追加してもらおう
で結局これから作るソフトはWinFormsが良いの?WPFが良いの?
>>276 いや選択肢はC++だけなのでC#はどうでもいいかな。ただC++/CLIを使ったとしてもWPFのフル機能は使えないんだろうなあ
と思うとやっぱWPFは無理かなあと。
.NETでわざわざC++を使う理由はなに?
ましてやなぜWPFで
.NET言語の一つとしてWPFのフル機能は使える。
ただしIDEのフルサポートが受けれない。
C++/CLIは相互運用目的でC#・P/Invokeではダメだという確固たる理由がない限り使うべきではない。
それだけ差が大きい。C++/CLIスレに行ってもC#使えと門前払いされると思うよ。
>>280 むしろわざわざC#使いたくない&使えない。でもWPFは使えるなら使いたい。
わりとこういう場面はある。
WinRTみたいにC++からもXAMLとか使えるようになるとなあ・・。正直.NETは結局C#専用ライブラリだし、もう消えていいと思う。
.netないとメトロアプリも大変だろ
どうせWinRTに飛び付くのも.net開発者ばかりだよ
結局今のC++/CLIと同じ状況になってフェードアウトする
同感だな。
UI以外の部分を高速化したいならC#+NativeDLLで十分。
UI部分では、UIの負荷が大きいのでC++による高速化など微々たるもの。
(C++/CLIやC++/CXでない)普通のC++のような、
「大きなランタイムを必要とせず、多くのプラットフォームで動く」という利点もない。
C++/CXによるXAMLの利用に何を期待してるのかわからんよ。
c++のほうが早い、と思ってるんだろう
C++から使えるのかって質問に、C#使えっていうバカもこまったちゃんだとは思うがな。
しょうがない俺が調べてやるか
何を見てるんだ?質問の答えはすぐに出てるだろ。
できるが、開発環境の支援が無いので非常に面倒。
求めてない答えは目に入らないものさ
そんなアホな返答で事足りるわけないだろ
WinRTは徐々にAPI増やしていくんだろうな
win32API中心主義は終わったらいいのに…
292 :
デフォルトの名無しさん:2011/10/07(金) 20:46:33.48
>>287が調べた素晴らしい回答とやらを期待しておこうか
F#「ディスられてる気がする」
VSの言語にc++ vb c#以外に何かあったっけ?
SQLが必要だろ。
もろXAMLっしょ
アイロンなんとかってあったろ
JScript(笑)もあるよ
なに必死に自己レスしてんのw
302 :
デフォルトの名無しさん:2011/10/14(金) 12:41:39.66
ViewのContentControlタグで色々バインドしたりダイナミックリソース書いたりしてるんだが、重すぎワロタ。
画面表示に8秒ぐらいかかって使い物にならねえ。
助けてエロい人。
それだけでどうにかできたらエスパー選手権で相当良い位置を狙えるな
2009年度3級試験の問2だったと思う。
305 :
デフォルトの名無しさん:2011/10/14(金) 15:29:51.23
どうやらcontentTemplateでダイナミックリソースを指定してる箇所が多いのが原因のようだ。
Contentタグを囲めてcontentTemplateを指定できるタグってないかな?
そういった用途には向いていません
まずDynamicResourceを減らすのが先だな。
テンプレートで毎でリソース生成してたら遅いに決まってんだろ
WPF重すぎ…
1000万個コントロール生成するだけで一分近く待たされる。
だめだコレ。HTMLには遠く及ばない…
>>309 VB6とかWinFormsのときはコピペで倍々にして張り付けまくるというテクニックがあったな
DynamicResourceは標準で大量に使われてる。
コントロールなどの配色などDynamicResourceだよ。
気にするような重さじゃないよ。
1000万のコントロールのうち目に入るのはいくつだろうな
314 :
309:2011/10/15(土) 00:28:47.58
すまん。1マンコの間違いだった。
VirtualizingStackPanelを使って仮想化を有効にしろ。
1万のコントロールのうち目に入るのはいくつでしょうね
Flexに3万件のデータを表示させようとしたマヌケを知ってるから笑えない
HTMLは要素増えるとgetElementByIdとかquerySelectorが加速度的に遅くなるんで1万個も置くのはお勧めできない
大体POSTだけで死ぬほど時間がかかるだろ
idをつけなけれはいいのではないか
POSTしなけれいいのではないか
320 :
309:2011/10/15(土) 18:26:39.91
WEBで一万のPOSTとか全然速いから。
JSは確かに遅い。
速いも糞も受け側の問題だろ
HorizontalContentAlignmentがStretchに設定されたListBoxの幅に合わせて
ProgressBarの幅が調整されない件について
<Window x:Class="WpfApplication1.MainWindow"
xmlns="
http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="
http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<DockPanel>
<ListBox HorizontalContentAlignment="Stretch">
<ListBoxItem>
<ProgressBar Value="100" Height="20" />
</ListBoxItem>
</ListBox>
</DockPanel>
</Window>
Windowの幅を広げた場合は調整されるけれど、狭めた場合は調整されない
どうすれば調整されるようなるのでしょうか?
環境はXP、.NET Framework 4 CPです
Value="50"にしておかないと質問の意味が分からないと思うよ
個人的にはバグだと思う
何か説明できる理由はあるのかなあ
元よりバーが長くなるのはなんでだろ…
GUI系の言語バグって、基本的にみんな叩かないし、互換性維持のために動作を変えられずに後付け仕様として定着していくからたちが悪い。
こうやって変な動作だらけのWinApiみたいになっていくのか…
ターゲットフレームワークがあるんだから直してもいいだろ別に
もうDLL Hellってた時代じゃないんだよ
最近のMSは.NET関係には結構破壊的変更入れてくるよな
BCLはさすがにないけどプラットフォーム周りに
下手に出てると付け上がるし
330 :
322:2011/10/16(日) 01:46:23.56
>>330 Microsoft Connectが見れなくなってる?
俺の報告したWPFのバグはずっと放置されてたけど直してくれるんだろうか
日本語のバグ報告は放置されがちだよな。
WPF開発者の脳がバグってんだよ
ProgressBarだけじゃなくて、
TextBlockでも微妙に横幅の計算がおかしくなる。
俺は内部の要求サイズを無視するパネルを自作して対処したよ。
基本動作全体がおかしいのか
ListView以外でおかしくなった事はないがな
うちのPCではVS2010の挙動が結構ヤバい
サブウィンドウの端が欠けるのはまあいいとしても、エディターの表示がおかしくなることが結構ある
GridView,ListView,ListBox等のリスト関連は品質が悪いね。
性能は悪いし、レイアウトがおかしくなったりもする。
柔軟性が上がったのは良いけれど、
複雑すぎてWPF開発者自身もついていけてないんじゃないか?
>>337 それは腐ったGPUやグラフィックドライバが原因だな。
XP時代にはよくみかけたが、
最近はGPUを酷使するビジネスアプリも増えてきたし、
自然とダメなGPUは淘汰されていくだろう。
GPU依存するとかdirectXの悪夢再来って感じだな。
再来じゃなくてDirectXそのものだから
企業で大量導入した後に表示ができないとか判ったら
左遷確定だな
試しもしないで大量導入するのか
表示されても左遷だろ
XP自体directxで書いてるのになんでこんなのがソフト開発やってるんだろう…
まともなフォルダダイアログはまだ出来ませんか?
API Code Pack使おうか
C#できて10年以上立つけど
C#性のアプリ、フリーソフトってほとんど見かけないね
あったとしても初心者が作ったしょぼいのしかない
えっ
WPFで作られたソフトの方が壊滅的にないけどね。
MSは流行らないものはあっさり捨て去るから、このままWPF流行らないと次のOSではサポート対象外になってもおかしくない。
WPFやめて何するの?
てか、マネージドにしたのが失敗だったな
これがネイティブだったら爆発的にヒットしてたのに
まだ10年経ってないぜw
あと一年
ネイティブとか余計ダメだろ
10年ほど前にDelpiから移行したけど間違いはなかったと思う
自分のためのコーディングするならc#かjava
時々javascript
web用ではpython
Win7のタスクバーアイコンを触りたくて移行した
入門記事読んでバインドとかスタイルとか知ったら、
オーバーヘッドなんて屁とも思ってないんじゃないかと思う
C/Sシステム触ってないから知らないけど
速度が必要なのはサーバで
クライアント側は開発効率重視ってことなんじゃ
>>354 > オーバーヘッドなんて屁とも思ってないんじゃないかと思う
WPFを作リ始めた頃はそう思ってたんだろうけど、
今ではMS自身もやりすぎたって思ってるんじゃないかな?
SilverlightやWinRTでは、
マネージドコードを減らして、ネイティブによる実装の割合が増えてるし。
>>350 マネージドにする事でライブラリが綺麗になってるはずのWPFでこんなに複雑なんだぞ。
最初からネイティブにしてたら、
TSFみたいな酷く使いにくいライブラリになっていてもおかしくはない。
WPFの代替が無いのでWPFが捨てられる事は無いだろう、って点は同意。
無ければ作ればいい
こんな学習効率の悪いフレームワークさっさと捨ててほしい…
SL oob がある!と言っても実際にSL使ってみたらWPFと比べて貧弱でoh...状態だしなあ
デスクトップアプリならやっぱりWPFのほうが強力だし楽だしでいまさらWinFormsなんて触りたくもない
依存関係プロパティやINotifyPropertyChangedの言語サポートがあればもっと楽になるんだが。
あとC#製ソフトが少ないって、C#製だと気付いてないだけなんじゃないか
そのSLすらMetro版IE10じゃ使えないんだと。
WPFが難しいとか言ってる奴はWinForms以外の環境触ったことあるのかと
触ってたらわかると思う
WPFの特異性が
XMLでUIを定義するなんて普通にあるし
レイアウトの仕組みとかもよくある最近のスタイルだと思うけど
レイアウトならいいよ
XAMLの中で動作定義してんだろ
あの部分が蛇足
バインディングなんか例えばFlexでもできるぞ?
ビヘイビアは確かに糞だと思うけどあれはスタイルの問題であってWPFとは直接関係ないし
最近WPFを調べ始めた日曜プログラマーなんだけど、調べれば
調べるほど、WPFに移行する意欲が萎えてくるんだなあ...
デザインとコードの分離なんて当然関係ないし、作るソフトの規模
からして、MVVMモデル導入するメリットもあんまり感じない、
表現力と言ったって、基本はWindows標準のインターフェース使うしな。
従来のWinFormsと実行速度が同等なら、次の技術という事で
手を出してもいいんだけど、それも怪しいし、機能面でも発展途上、
有志が作ったライブラリ導入しないと開発効率が悪いみたいだし、
まだ時期尚早なのかなって思ってるんだけど、MSがMetro+WinRT
なんてのに手を出しちゃったから、下手したらこのまま永久に時期
尚早のままじゃないかなって。
触らないでやめるなんてもったいない…
WPFは個人差が出やすいですよ
同じアプリ作ってもAさんは2時間でできて
Bさんは2〜3日かかるなんてザラ
君は数少ないAさんかもしれない!
たかがUIフレーワークくらいで大袈裟な
この程度でウダウダ躊躇しててよくプログラミングなんかやってられるな
自分はWPF触ってからWinFormの煩雑さが嫌になったけどね
簡単なのなら特にすぐできるのに、WinFormだといちいちイベント定義とかめんどくさい…
WPFなんてやらなくていいよ、
やたらコードが長くなるから
それに比べてPythonの楽しいなー
個人でやるならこれで十分だよ
C#やWPFに手を出すんじゃなかった
この2年間物凄く無駄だった
イベント定義よりコマンド定義の方が面倒だろw
ツールキットとスニペット使えよ
バインディング否定してる人間ってフレームワーク情勢に疎いんでしょうねえ
そりゃ個人ならね
バインドする必要なんてないしな
ばいんばいん
375 :
デフォルトの名無しさん:2011/10/18(火) 18:39:29.80
すいません、教えてください。
WPFで日本語入力の確定イベントを取得する方法をご存知の方
いらっしゃいましたら、お教え願えませんか?
具体的には、TextBoxにIMEで日本語入力をし、ひらがなから
任意の漢字に変換し、Enterキーを叩いた瞬間のイベントを
受け取りたいのです。
そして、この時の確定文字列に対してフィルタリングをかけて、
入力可能であればTextBox.Textに代入し、入力不可であれば
TextBox.Textには何もしない、というような処理を考えております。
Windows.Iんぷtの中にTextXXXってクラスが並んでるのでその辺か?
知らんけど
System.Windows.Inputね
keyupだろバカ
ここまでの流れで誰もバインディング否定なんてしてないと思うけどなあ
>>375 質問するけど
それって糞インターフェイスだよな?
あまり好ましくはないね
自分で使うものだろうしどーでもいいだろ
383 :
デフォルトの名無しさん:2011/10/18(火) 19:25:42.56
>>376,377
ありがとうございます。
ざっと見てみましたが、希望の機能は無さそうですね。
>>380 正直その通りですw
しかし、仕様は正義・・・orz
正しく文句言えない奴はゴミクズ
>>375 ValidationRule使えばいんじゃないか?
それかバインドしたモデルにTextChangeみたいの飛ばさせるとか…
まぁIMEに関係なく飛ぶけど、コピペ入力制御もいれるなら…
すまん、途中しか見てなかったw
バインドなんて普通いらないし
Listviewですら糞重いし
個人でも使いたくないわ
3Dゲームがヌルヌル動くPCで
どうしてボタン配置しただけのフォームがこんなに
糞重いんだって話だよ
明らかに設計ミスだろ
だからFormsに戻れってw
誰も頼んでないってw
7年前のPen4でも余裕だよ。
変なことしてるんじゃない。
使いたくないって何で無理して使ってんの?
使ってないの?使ってないのにこんなスレ見てるなんて余程の暇人ですね。尊敬します。
いやいや、重すぎだろw
デザイナーも糞重いからデバッグ作業がうざすぎるし
FPS計ったら30fps以下だしww
ゲームでもつくっとるのけ
PenProか何かなんじゃね。
ゲーム作るならXNAでやるわw
なんだかなあ
全コントロールにMesure発行したり全画面レンダリングし直して重いとか言ってそう
397 :
デフォルトの名無しさん:2011/10/18(火) 20:12:00.09
なんかScalaも重いっていってとりのこされそうだな…
設計見直せば?
条件も明示しないで遅い遅い言うヤツはバカ
処理系はそれほど遅くないよ
GUIが重いんだよ
ボタン1個あるだけのフォームで既に重い
スレに勢いがあると思ったらこれなんだよな…
2ちゃんで愚痴る以外に他に使い方あるのかよw
Access全盛期はバインドして画面から直接DB更新。生産性最高!とかマンセーしてる奴多かったが、同時実効性やパフォーマンスに難ありすぎて、あっという間に廃れたよな。
winformのバインドは融通効かないし。
Viewport3Dで簡単なゲーム作れるくらい軽いぞWPFは
依存プロパティの定義冗長すぎだろ
ヘジが糖衣構文許さないんだろ…
そういうのは言語を拡張するよりも
コードの動的生成などでライブラリやVSのレベルで対応したいみたい
プログラムからコンパイラの内部にアクセスできるようになる
まあフレームワーク出すたびに糖衣構文乱発してたら
ゴテゴテ言語になるからな
Roslynだな
T4でやるにもいちいち面倒だからRoslyn使ったIDEアドインが有力だろう
今でもPostSharpやNotifyPropertyWeaverみたいなコンパイル時処理もなくはないが。
Roslynどうなるかわからないけど
きっつい時代になる可能性があるのでこわひ
Roslyn使うとどうなるの?
独自の言語仕様に対してプリプロセッサみたいなのを作っておくと
解釈して展開してくれるの?
デザイナでいろいろいじってると画面が壊れてデザイナで表示出来なくなったり、完成度低くないですか?
低いよ終わってるうんこ
Blendは安くならないのかな…
415 :
デフォルトの名無しさん:2011/10/19(水) 15:52:07.36
WPF2.0以上なら3.5でも4.0でも構わない環境です。
@やりたいこと
・コントロールのグループ化(という名前か分かりませんが)
・VC++の場合での、groupプロパティでできること
・具体的には、適当に並べたコントロールに対して、
[Tab]キーでは、タブオーダー(xamlでの配置順)に従ってフォーカスが移動し、
[矢印]キーでは、グループ内のフォーカス移動しかできない
@google検索語句
WPF .NET グループ化 "group property" group focus フォーカス
FocusManager.IsFocusScope
@備考
codeprojectでそれらしいものが見つかりましたが、
やりたいことの[Tab][矢印]キーの動作が逆でした。
ttp://www.codeproject.com/KB/WPF/EnhancedFocusScope.aspx 宜しくお願いします。
416 :
デフォルトの名無しさん:2011/10/19(水) 15:59:00.46
>>415 あと FocusManager クラスも調べてみれ。ビヘイビア作れば XAML でも使えるんじゃね。
419 :
415:2011/10/19(水) 16:10:22.74
>>417 ありがとうございます。
ご提示の情報は、タブオーダーの話なので
求めているものとは違います。
思い通りの順番でタブオーダーが設定されない、
という状況の原因と対処が書かれています。
>>418 FocusManagerクラスについても調べてみましたが、
今のところやりたいことは実現できていません。
codeprojectのものも、FocusManagerクラスが使われています。
>>416 こういうのが出るまで長かったな
MSは馬鹿だね
>>416 MS,俺に続け!って言ってんの?この人
>422
使えないMVVMインフラが多いからだろ。プロジェクトには未確認飛行Cの人も加わってるらしい。
最近のMSならユーザの動きが大きく活発になればありえん話ではない
まぁこれだけ乱立すればなぁ
乱立って程じゃないだろ
java見ろjava
日本製なのはWPF入門者の俺にとって嬉しいとこだな。
チュートリアルとかドキュメントがもっと整備されてれば言うことないんだが
>428
「サービスも度を越すと商売になる」 という名言があってなぁ・・・・
sendmailとかか?
MVVMライブラリを整備し採用されることによりライブラリの信頼度および世の中のWPFアプリの品質を上げ
WPFで仕事ができるようになったりそのMVVMライブラリを仕事でも使えるようになったりしてお得なんだな?
何言ってんだ俺
432 :
デフォルトの名無しさん:2011/10/19(水) 20:03:24.55
俺もXAMLが完全に見た目しか記述できないものが良かったってのに一票だな
デザイナー用ってレベルじゃないだろあれ
同志よ!
レイアウトにロジックと動作入れるな!
モデルに口出すのはMVVMフレームワークとしてはちょっとなあ
MSがこういうの出すならサンプル止まり
435 :
デフォルトの名無しさん:2011/10/19(水) 22:22:33.78
すいません、質問です。
List<string>の依存関係プロパティにデザイナーから文字列を追加したいのですが、
どうすればできるかご存知の方お教えいただけませんか?
CollectionEditorとかNewItemTypesAttributeなどを調べてみたのですが、
実現できませんでした・・・、
もともと準備されてない気がする
コントロールの画面座標をとりたいんですが、どう書けばいいんですか?
this.top アプリケーション座標
this.left アプリケーション座標
Control.PointToScreen( new Point( )) コントロール座標不明
ほにゃらら.GetTop(対象)
Canvas.GetTop(button1)
winapi時代に逆戻りのクソ仕様
Canvas.GetTopは親がCanvasの時しか使えない
PointToScreenで何が問題なのか
それ以前に座標取りたいんでしょ
Grid.getTopでもなんでもいいだろ…
>>438 GetTopがGridでもCanvasでも出てこないんですが、どうすればいいんですか?
WinAPIのGetTop()かFindWindowでキャンバスをさがせってことですか?
絶対違いますよね?
だから何がしたいんだよ
>>440 アプリケーションに最初にあるGridにMainGridって名前つけて
MainGrid.
ってやってもGetTop()がインテリセンスに出てきません!
staticメソッドだぞ
>>442 コントロールのクライアント座標とアプリケーションのスクリーン座標を足して
コントロールのスクリーン座標を計算したいんです
>>446 window.PointFromScreen(control.PointToScreen(new Point()))
gridはマージンだったな
button1.Margin.Top
>>447 その最後のnewPoint()に入れる値がわかりません
>>449 (0,0)(左上隅)を渡してる
ウィンドウに対する座標でなくスクリーン座標を取るならwindow.PointFromScreenは要らん
呼び出すのはWindowのPointToScreenじゃなくて
対象のコントロール.PointToScreenだぞ
引数は対象のコントロールを基準とした座標だから0,0でいい
コントロールのスクリーン座標って何に使うか気になる
control.PointToScreen(new Point())
コンパイル出来たんですがこのコードの時エラーでないでアプリ終了しますなぜでしょうか
c#初心者スレ池
>>453 マウスがコントロール外に出た時でないように、コントロール内に引き戻そうかと思ってます
すいませんよく見たらエラー出てました
'System.InvalidOperationException' の初回例外が WindowsBase.dll で発生しました
ここでおねがいします!
コントロールを表示してないんじゃないの
以下レス禁止w
>457
だからコントロールの座標知って何やりたいの?
やりようによっちゃ、そんなこと不要かも知れないよ。
>461
あ、>456 にあった。orz
すいません新規プロジェクトの最小構成だと動きました
自分のソフトがおかしいみたいです
ありがとうございました!
464 :
デフォルトの名無しさん:2011/10/20(木) 13:14:17.69
Livet の ViewModel って IDataErrorInfo 実装してないけど、これってどうなの?
IDataErrorInfoって言うのがあるのか
勉強になるな
便利そう
でも汚い仕組みだなあ
これってエラーである必要がないような気がするし
MSDNや10行のような使い方だと
同じプロパティでミスがあって制御間違うとエラー内容上書きされちゃう
dataerrorが無かったら即時エラー表示できないじゃないかバカだな
submitされてからエラーチェックしてmessagebox出すつもりか? バカだな
>>464 Livet のサンプル見てると、必要に応じて自分で実装しろというスタンスらしい。
サンプルの MemberViewModel.cs を参照のこと。
>467
エラー処理は汎用的に使うもんだから、最初から用意した方がいいだろ。
Livet の NotifyObject に IDataErrorInfo 実装して、こんだけ追加しとけばいい。
protected readonly Dictionary<string, string> _errors = new Dictionary<string, string>();
public string this[string propertyName] {
get { return (_errors.ContainsKey(propertyName) ? _errors[propertyName] : null); }
}
public virtual string Error {
get {
var ret = string.Empty;
foreach (var e in _errors) {
if (!string.IsNullOrEmpty(e.Value)) {
ret += e.Value + Environment.NewLine;
}
}
return ret;
}
}
public bool HasErrors { get { return _errors.Count != 0 || !string.IsNullOrEmpty(Error); } }
ValidatesOnExceptions というものがあってだな
IDataErrorInfo の方が使いやすくない?
dataerrorがないと数値型に文字列つっこんだときにエラー取れないのにかわいいな
開発者らにフィードバック投げつけりゃいいんじゃね
見てると思うよ。
見てる?イエ〜イ
リベットは一度型押ししたら
壊さないと取れません…
DataGridのセルを選択し、日本語入力をOnにして、キー入力したとき、
未確定文字列がウィンドウの外側に表示されてしまいます。
先にセルを編集状態に変更し、
テキストボックスに入力されている文字列があればその後端に、
未確定文字列を表示することはできるでしょうか。
うん
無理だろう。
初心者って変な仕様考えるよな
根本が間違っているのに
>>480 仕様考えるのは何も解らない顧客と発注元。
プログラマーに拒否権は基本的にない。
誰がそんな話したんだよアホか
>>477 フォーカスあてたときに編集モードにしておく
DataTrigger使ったら、SetterのProperty属性のとこで「修飾型名がないので無効」ってエラーが出るんだが、
これはどういうことなんだろうか・・・。
名前空間指定が足りなくてクラスが見えてない
>>483 範囲指定したセルのコピーを実装する必要があるので、その方法は断念しました。
<Window x:Class="Win7WPF.MainWindow" xmlns="
http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="
http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525">
<Window.CommandBindings>
<CommandBinding Command="Refresh" Executed="CommandBinding_Executed" />
</Window.CommandBindings>
<Grid>
<Grid.ContextMenu>
<ContextMenu>
<MenuItem Command="Refresh" />
</ContextMenu>
</Grid.ContextMenu>
<Button Command="Refresh" />
</Grid>
</Window>
public partial class MainWindow : Window
{
public MainWindow() {
InitializeComponent();
}
private void CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e) {
Debug.Print("CommandBinding_Executed");
}
}
この状態で起動直後に右クリックしてメニューを出したとき、メニュー項目がグレーアウトしていて選択できません
ボタンクリックやF5キーは最初から有効です
一度ボタンクリックするとメニュー項目が有効になります
F5キーではメニュー項目は有効になりません
最初から有効にならないのは何が原因なのでしょうか?
Windows7 Home64 VC#2010ExpSP1です
>487
そういやそんな現象おいらもあったな。
ViewModel にコマンド移動してバインドさせたら最初から有効になったけど、原因はよくわからん。
489 :
487:2011/10/21(金) 15:52:44.94
2日悩んだのでテストプログラムを作って書いたのですが
フォーカスが関係していることに気づきました
起動直後にタブを押しても有効になります
起動時のフォーカスの設定方法はまだ調べていなかったので
多分なんとかなると思います
お騒がせしました
これは自分も嵌った。
・ CommandBindingはフォーカスを持つ要素の親で設定された物しか有効にならない
・ メニュー等にRoutedUICommandが設定された場合、対応するCommandBindingが無いとその要素は無効になる
・ 初期状態ではどの要素にもフォーカスが設定されてない
・ Gridのような、右クリックでフォーカスが設定されない要素もある
理由がわかれば当然の動作だけど、最初は何が何だかわからなかった。
>4億人のユーザーを抱えるウェブサイトには優れたプログラマが必要です。
>2011年10月のコーディング・チャレンジにご参加ください。
お前らの出番じゃないな
492 :
デフォルトの名無しさん:2011/10/22(土) 22:04:06.95
System.Windows.Controls.TextBoxを継承したカスタムコントロールを
作成しているんですが、Widthが変更されたことを感知して、処理を
行いたいのですが、何かうまいやり方をご存知の方いませんでしょうか?
Widthを動的に変更することってあんまりない気がするけど
DependencyProperty.OverrideMetadataでオーバーライドはできる
実はActualWidthの変更じゃない?
ちょい質問.
DataGridのItemsSourceにIEnumerable<△△>を設定して,
ColumnsにDataGridTextColumnをいくつか入れて△△の各プロパティにバインドしている.
表示は問題ないのだが,F2(など)で編集しようとすると,
InvalidOperationException('EditItem'は,このビューに対して許可されていません.)
という意味不明な例外が飛んでくる.
△△にIEditableObjectを実装してみたが症状は変わらず.
どうすれば解決できますか?
素直にデータソースをToList()しておく
意味ない気がする
素直にデータソースをObservableCollection<T>にしておく
498 :
デフォルトの名無しさん:2011/10/23(日) 14:00:37.05
デザイナでbuttonにbackground Color を設定して実行した後、
クリックするとクリック色?とバックグラウンド色でずっと色の滑らかなアニメーションをします
勝手にチカチカするボタンが出来てしまいます
これってなんですか
解除する方法はないんですか?
win7 32bit vs2010日本語版 sp1
ControlTemplateを編集すればいい
一回ボタン押すと永遠にチカチカするボタンができるのは既定の動作ですか?
そんなの見たことねーな。
チカチカしてる動画と
ソースコードをどこかにUPしてくれ。
ソースは貼るまでもない
WPFフォーム新規作成
ボタン一個置く
BGをRedなど適当に設定
実行
ボタンクリック
クリック終了後永遠に2色の合間で滑らかに変換し続ける
試せ!
フォーカスしてるときのアニメーションのこと?
ボタンを2つ置くと
Aボタンクリックでチカチカ開始
次にBボタンクリックでAボタンの明滅は止まりBボタンのチカチカ開始
更にAボタンクリックでBボタンの明滅は止まりAボタンのチカチカ開始
>>503 フォーカスアニメーションなのかよ
こんなの必要なのか?
テンプレート変えればいいでしょ
そのままだと見た目が環境に依存するから中途半端にカスタマイズすると変になるぞ
俺の環境じゃアニメーションなんかしないな
ということはお前ら配布用に環境に依存しない
テンプレート作って持ってんの?
デフォルトで使うなら別にそのままで問題ない
カスタマイズするんなら揃えるのは当たり前でしょ
フォーカスアニメーションってAeroのか。
それがシステム準拠の見た目だからそれが普通。
変えたいならテンプレート書けば良い
あとチカチカって表現するもんじゃねーだろこれ
しかし、Buttonのテンプレートが中途半端にTemplateBindingしてるのは罠だな
BackgroundはTemplateBindingなんかしてない方がマシだった
win7だけどそんな動作見たことない
OSの設定で無駄なアニメーションを切ってると出ないんじゃねーの?
>>501 そのスタイルはOSのテーマに依存だからだよ。
色をつけるボタンとか作るならControlTemplate編集でOS依存のスタイルを抹消したほうがいい。
515 :
494:2011/10/24(月) 08:58:27.65
>>497 それが素直な方法なんですね.確かにそれで編集ができるようになりました.
ありがとうございました.
WPFって敷居高いよなー
デリゲート熟知していないと全くプログラム組めない
熟知なんて言うほどの部分あったかな
抽象度高いから、WinFormsでコントロール置いてただけの人はそう感じるんじゃない?
業務APには不要なものが多いからな
リッチに見せたい人にとっては今一つ挙動がもたつくし
リッチなんていらねぇって人にとっては機能をもて余す
WPFは先進的なアーキテクチャを取り込み
コントロールを回転させたり、星形にすることができす^^
オススメですよ^0^
業務アプリだからこそなおさらわかり安いデザインに拘るけど…
性能・機能重視でもわかりづらいデザインだとキツイし、わかり安ければWinFormでも良いかと…
個人的にはWinFormのデザインに限界感じるが…
「今まで通りに動いて、ちょっとだけ変えて欲しい」
ちょっとだけには対応しやすくなった
今まで通りに動かすのは面倒
Everythingの開発者も投げ出したWPF
WPFはレイアウトシステムやテンプレート、バインディングが分かればもうWinFormsに戻りたくなくなる。
特にバインディング。
楽だけど糞重いです
バイディングできるっつってもそれはViewに対してWinFormsより楽になっただけで
モデル間は相変わらず面倒なわけで、それなら軽い方がいいだろって話なわkで
遅いわけではないがメモリは食うな。
あとイベントに気を付けないとリークする
>>522 これは同意。
「特定の条件で、部分的に色を変えてくれ」とか、
WinFormsではオーナードローしないと対応できなかった要求が、
ちょっとテンプレートをいじるだけで対応できるようになって楽になった。
開発環境だと重いけど、直接ビルドしたEXE叩いてみ。マジぱねぇっす!
イベントをなくすためにも Livet 使おう!
531 :
デフォルトの名無しさん:2011/10/24(月) 16:23:35.48
DataTriggerについてお聞きしたいのですが、同じ記述形式でも動作する場合としない場合があるのはどういうことなのでしょうか?
具体的には、
@グリッドAとその中のグリッドBを定義。
AAとBそれぞれにContentControlを定義
BAとBそれぞれにDataTriggerを記述し、ContentControlのプロパティを変更する
としたところ、何故かAのContentControlのプロパティしか変更されませんでした。
条件は同じで、バインドした値がTRUEだったらという感じです。
シンクロナイズしてないんだろ
Mode=TwoWayかもしれないしそうじゃないかもしれない
mvvmフレームワークっぽいの作ってみたけどメッセージがどかどか飛び交って超難解
それにフレームワーク使っても結局WPFの理解は必須だから初心者の助けにはならないね
初心者向けじゃなく MVVMer のためのものだから、使い方難しいのはしょうがないのでは?
で、お前らWPFまで使ってどんなソフト作ってるの?
はっきりいって個人で使うツールにWPFは無用だし
作るのに時間もかかるしいいこと無しなんだが
>>536 ボタンを星形にしたり、マウスホバーしたらボタンがぷるんぷるん動くようにして楽しんでます
時間がかかるのは慣れの問題でしょ
バインド使えばスレッド変えてても何も気にしなくていいのが気に入った
汎用パーツ作っとけばくっつけるだけだから、むしろ「WPFだから早く作れる」レベル
と、思っていた時期が私にもありました。
ViewModel で単体テスト行えるのがいいよね。
Forms だとユニットテストなんて夢のまた夢。
正直WPFは汎用パーツ作りづらいと思うぞ
汎用ビヘイビア作った方が使い勝手がいいよ。
コンバータなりビヘイビアなりトリガアクションなり
>>536 ツイッターアプリ、録画アプリとか…
時間があれば2chもやりたいかな?
よくわからないけど、ツイッターにバインドして自アプリで表示みたいなことできるの?
WEBの情報にバインドできたらすごいなーって思うんだが
よく分かるようになったら教えてやるよ
知りたいときが教え時
今逃すとチャンスないよ
子育てママかい
バインドするクラスが情報持ってればいいんだから、
APIだかhttpだかで拾ってきてコレクション更新してイベントraiseして
みたいな感じだろ。聞けば「なーんだ」ってレベルだな
>>554 いやいや、それできるのは当たり前じゃん
俺が言っているのはWEB上のデータを
そのままデータソースとしてバインドできるかなんだよね
なんかどっかでそれっぽいことできるみたいなこと書いてたんだがなー
お前らレベルじゃわからないかw
DataGridのセル結合って出来ないんだっけ?
>>555 linq toなんとかの覚え間違いだろ。夢見すぎなんだよバカだな
若い時のバカは勝手でもしろ
このスレの住人さんはPrismつかってるんですか?
私は自作BehaviorをつかってたんだけどPrismに変えようかと思ってるところですす・・・
Prismは実用性低いからmvvmlightの方がいい
>>555 画像ダウンロードとサムネ・履歴・検索等の都合上、ローカルファイルにおとしてるから自分はWEBバインド使ってない
WEBバインドはなんか条件必要だった気がするけど、今回仕様に合わなかったからやってない
TextBoxのTextに"abc"を設定した後SelectedTextに"bc"を設定すると
"bcabc"と先頭に"bc"が追加され、それが選択状態となります。
"abc"の「bc」部分を選択状態とするにはどうすればいいのですか?
bc$
SelectionStartおよびSelectionLength
>>562 SelectedTextは今現在選択されてるテキストなのです
そこに値を入れると元々選択されていた部分をその値で書き換えます
選択されていないとカーソルがある位置にその値が追加されます
もし「bc」部分の場所が固定であるならSelect(1, 2)で充分です
「bc」部分の場所が変わるならその位置をまず探さないといけません
TextBoxのTextはstring型なので Indexof()が使えます
そのあとTextboxをFocus()してやると範囲が選択されていると思います
566 :
562:2011/10/27(木) 12:24:58.14
567 :
uy:2011/10/27(木) 12:38:39.42
かわいそうなフレームワーク筆頭
使ってる奴はもっと可愛そう
日本の仕事ってこんなんばっかりなんだろうな
頭ボケちゃうよ
>>565 IndexOfじゃ無理だろアホかw
bcabcっつってんだろカスww
569 :
デフォルトの名無しさん:2011/10/27(木) 13:20:04.06
>>568 本文ちゃんと読もうな、abcのbcを選択しようとして
やり方間違ったからbcabcで先頭bcが選択状態になったと書いて有るだろ
カスはアンタやw
無能ほどIndexOfを使いたがる
571 :
デフォルトの名無しさん:2011/10/27(木) 15:20:39.05
>>570 有能だとどうコーディングするんですか?
有能は指図する側です
なるほど
有能なプログラマーならどう 実装するのかって意味だろ
有能なマネージャーには聞いてない
いくら有能な人間でも素晴らしいコードが書けないならそいつは無能なプログラマーだ
有能なプログラマーはこの世に存在しないという意味なら謝る
有能なプログラマーはいるけどここにはいないよ
正規表現一発で出来ることをSplit, IndexOf, Substringあたりの組み合わせでチマチマ処理してるアホは結構いる
コストかけるべき部分は適切に見積もった方がいいですね
なんつっても決して軽くないWPF使ってるんですしおすし
selectionって一か所しかできないのに
なんで複数の場所取得するんだろ…
indexofすら使えない馬鹿が暴れてるんだろw
文字列parseするならstring[int]でchar取れることくらいは知っておきたいよねおれら
マジかよシラナカッタ
って言っておけばいいの?
正規表現知っててもMVVM知らない奴はここでは負け組
正規表現知らなくてもMVVM知ってる俺は勝ち組
いやいや百歩譲っても正規表現は知っといたほうがいいぞw
詳説正規表現面白いよね
重いけど
WPFやろうと思って
<TreeView>
<TreeViewItemHeader="Employee1">
<TreeViewItemHeader="Jesper"/>
<TreeViewItemHeader="Aaberg"/>
<TreeViewItemHeader="12345"/>
</TreeViewItem>
</TreeView>
MSにあったこのコードコピペしたら、最初の=のところでIDなんたらエラーがでて速攻やる気無くした
ですよねー
<TreeViewItemHeader="Employee1">
<TreeViewItemHeader="Employee1">
<TreeViewItemHeader="Employee1">
<TreeViewItemHeader="Employee1">
</TreeViewItem>
</TreeViewItem>
</TreeViewItem>
</TreeViewItem>
</TreeViewItem>
正直UIをXMLで書くって発想がばかばかしい
ばかばかしいものが世間の大半を占めてますね
大衆は馬鹿ですから
はやってすらないけどね
えー流行ってるじゃない
目が悪いなあ
ネットしないなら分からないでもないけど
とにかく冗長。
XMLでUIっていうとAndroidがよく知られてるね。
XAMLはちーっとも流行ってないが、XMLベースは捨てるくらいあるな。
捨ててくんねえかな。
エッセンシャルに「なぜxmlで書くのか」書いてあるのに、きみらまだ読んでないのかい?
それとも参考書1つもなしに組もうとしてるとか?
もちろんだとも
金払ってプログラミングなぞ誰がするか
かんぴゅーたに譲歩してやってるんでしょ
カスなプログラマどもめ
急に自演臭い煽り合いになったな。
いいだしっ屁が屁をこいているように
自演も言い出した奴が犯人
AndroidのXML触ってるとWPFがいかによく考えられてるかわかる
この前のbuildだとxamlファン割といたけど
必死すぎで哀れなWPF民w
くっそ使えないWPF
コード量は増えるし
ビューの流用性が悪いし
おまけに糞重い
html5脳じゃ添付ビヘイビアとか理解できないしね
ふーんSystem.Windows.Interactivityがあるのにね
バインドが楽だけどバインド自体糞おも
AndroidなんかItemTemplateのようなことしようと思ったら
いちいちコード書いてレイアウトXMLを読み込ませてコントロールを自分で取得して
自分でプロパティを設定するんだぞ
バインディングが重いってどう使ってるんだよ
お決まりのパターンは1万件バインド
IValueConverterからSQLite呼ぶのはポイント高い?
それとふらっとに居たようなConverterに重い処理やらしてる人
613 :
612:2011/10/28(金) 20:45:48.79
もろ被りしてしまった
お前らみたいなゴミクズじゃなくて
エリートが作ったIDEですらあの糞重さだぞw
一般人が作って軽いアプリ作れるわけないだろ
VSが重いのはWPFになる前からずっとだな。
WPFのバインドはリフレクションしてるから糞重すぎる
100件のソートするのももっさりwつかえねーw
Expression Blendも全部C#とWPFだけど言うほど重くないよな
同じVM方式で更に重いEclipseを使ってるからよく分からぬ
全部C#じゃないですが?
まさかデバッグ実行のときのことじゃないよね?
ハイエンド環境だけどJScript Intellisenseは死ぬほど重い
メモ帳みたいにカレットの行桁を常時表示するとか
フォントを縁取ってドローするとか
そういう無茶以外は重くなったことはないなぁもちろn起動時は重いけど
JScriptがおっせえのはプロトタイプベース言語の構造的にどうしようもねえだろ
>>623 ラインオブジェクトの数数えたらhtml5脳でも「無理だろ」って思う数だぞ
行数えるのはさすがにイベントごとに数万行のテキストを数え直すのはC#には荷が重かったようだ
MVVM Tool Kitで作成したのですが
ViewModelLocatorというクラスがあるのですが
これは何のためにあるんでしょうか
ただMainViewModelをViewに渡しているだけのように思えるんですが
テストやデザインの時に必要に応じてダミーのVMに差し替えるため
XAMLで直接VMの型を指定したりコードビハインドでnewしたりして作ることもできるけど
それだとVMを差し替えられなくなるから間にクラス挟んでる
グローバル変数っぽいのが嫌ならロケータは使わないでMEFでDIしてもいい
標準ソートとかWinFormsでも糞遅いだろ
バインディングはActualWidthとかのレイアウト関連の値をレイアウトに競合するようなプロパティに押し込むと重くなるがこれはまあ当たり前だな。
AndroidのXMLはWPFと比べるとコンパクトで見やすい
拡張性は低いけどあれでいいと思う
>>627 なるほどークラスはそういう使い方もできるんですね
勉強になりました。ありがとうございます。
あんまり高機能でも使いきれる人が増えないと無駄ばかり目立つからなあ
Android並みのショボイUIでいいならポトペタで貼り付けてバインディングするだけじゃないか。
ハード的にあんまり複雑なUI作っても仕方ないからな
Androidのあれでデスクトップアプリは死ねる
重いというのとは違うけどウィンドウから全画面表示になると
画面のほとんどが黒くなったり、ウィンドウサイズ変更でガクガクするのは
修正して欲しい
オマケゲームの上海みたいに窓枠ドラッグしてる間はキャッシュの伸縮を表示しとけばいいんじゃね
VS2010でもガクガクするもんな
これだけは無理ぽ
モニタの解像度落とせば?
WPFってクライアント技術のくせにハイスペック要求するとこが糞だな。
サーバーなら多少の金出せるが、クライアント大量に買い換えるとかまず稟議降りんわ。
ハイスペックは要求してないだろ
どのへんがハイスペックだよ
メモ帳ぐらい軽くないと使う気起きない
デザイナとかなんでパっと開けれないのかねー
今透明ウィンドウをよくある
Background="Transparent"
WindowStyle="None"
AllowsTransparency="True"
の処理だと重くて動かなかった。
で、確かBackgroundで限りなく透明に近い色を設定できたと思ったんだけど
誰か教えてください
WPFやる前にWinFormsやっておいたほうがいい?
いきなりだと無理っぽいかな?
>>643 考え方が違うから、お好きにどうぞ。
イベント駆動開発のさわりくらいはやっておくといいとは思うけど。
VBAやらVB6触ってるレベルで、MSのセミナー参加したけど訳わからん
そりゃそうだろ
VB6っていつのプロダクトか分かってんのか?
開発環境が異常に遅い(開発環境の操作性)
開発効率が受け入れ難いほど落ちる
実行が遅い
操作の軽快感が重要なアプリの為。
非力なXP環境のユーザがまだ非常に多い。
GUIコンポーネントの互換性がない
せめて自動移行できれば・・・。
外部コンポーネントのWPF版が無い。あっても買い直し。
GUI系の処理が書き直しになる
そのコストは膨大。
標準コントロールがWinFormと対応付けできていない
対応するコントロールがなく、貧弱。
デザイナとプログラマの分離思想はメリットが無いどころかデメリットしかない
私の周りでは残念ながら”デザイナ”という職種もしくは専任者は存在せず、UIレビューでアプリケーション全体との整合を確保している。
WPFはどこかでメモリーリークしてるらしく
開発してたらメモリが足りませんって出るよな
イベントを素で使うとコントロールの参照握りっぱなしになる
よな?と言われても遭遇したことないな
>>643 まあ一通りやっておいた方がいい
MSが新しい技術のサンプルコード出すときはたいていWinForms用だから。
WPFにコード貼り付けてもそのまま実行できない場合が多い
ついさっきWPFの存在を知って、扱いやすいすげーって思ってたんだけど、このスレ読んだらディスられすぎわろた
スレの最初の方ではオワコンとすら書かれてるけど、なるべく使わないようにした方が良いの?
使いやすいと思うなら使えばいいよ
だってメリットがデメリットを上回ってるんでしょ?
>>652 新規向き
旧仕様を引き継いで移行しようとか言われると地獄を見る→オワコン
まずは何ができて何が出来ないか
どれくらいのパフォーマンス出せるか
よく調べてから仕様を決めるといい
まともに活用してる奴はこんなスレ見る必要がないから
必然的にこのスレにはネガティブな意見が集まることになる
どの辺を指して使いやすいって言ってるのかわからないから何とも言えないけど
ポトペタだったらWinformsのほうが使いやすい
バインディング、ビヘイビア、コマンド、テンプレートを使いこなせて
使いやすいと言ってる中〜上級者ならコメントはいらないハズ
テンプレート作るのが糞面倒
おまけに糞重い
でもいずれはWindows向けアプリ作るなら通らなければならないような気がするわけでもなんでもない
いっつも思うが重いってどの辺が重いんだよ
1万件バインド
普通に文字列50件ぐらい表示でもリストボックス重いこともある
イメージでは重くなかったり
条件がよくわからない
>>658 WinFormsと比べてあらゆる面で重い
DataGridのカラム移動するのも重い
ソートも多い
DataGridがあるときにウィンドウサイズを変更したら重い
開発環境が糞重すぎて試しながら作るのが無理
モデルだけ別にある程度作っておくって感じじゃないと無理だな
レイアウト再計算で処理食ってるパターンも定番
アイテムの大きさをバインドも含めてなるべく可変にしない
大きさの揃ってないImageをListBoxとかでWrapPanel使って並べるとすげえよく分かる
xamlが糞面倒だしわけわからん
msdnの機械翻訳の説明みてもさっぱり
Viewのデザインだけは楽だな
WinFormsはスナップもグリッドも使いづらい
WPFじゃなきゃだめってことが何一つないからな
糞重いだけ
だな、ちょっとトリッキーな表示にすると途端に重くなる
何が私のアプリは崩れないだよバカにするな
WPFはMVVMパターンでプログラムしやすい
それだけはガチ
msdnは大部分人間翻訳だろ…
ただ、翻訳者が意図的なのか天然なのかクラス名まで日本語に訳してる場合が多く
抽象概念についての文章なのか具体的なクラスについてなのかがよくわからないことがある
お前らどんな画面組んでるんだよ
JaneStyleのような画面
ごく一般的な業務AP
DB登録データいじるのに5000行×100列とかやるアホな子だけど
>>666 一人で組むのにmvvmなんていらんんわ
無駄にコード長くなるだけだし
あれだけ分割されるとどれをどこにかけばいいかわからなくなる
MVVMになるように考える時間の方が勿体ない
むしろWPFで作ってたら何も考えなくてもいつのまにかMVVMライクになっているんだが。
その構造取ったほうが組むのが楽だからな
MVVMで悩んだらとりあえずVMに突っ込んどけばいいんだよ
VVMMだと思うんだけど
V→VM→Mって依存関係的に
V2M2
データバインディング→コマンドバインディング→添付ビヘイビア→オブジェクト指向的に整頓
ここまでくるとmvvm入れるかって下地が出来てくる
バインディングなんかコードビハインドからデータデータコンテキスト設定した方が早い
決してバインディング使うためにMVVM使うんじゃなくて
presentation modelパターンをできるだけ楽に実装する手段がバインディングなだけ
フツーに俺もDataContext = new Hogeしとるわ
何から何まで従うなんてアホらしい
宗教じゃあるまいし
つーか楽な方法でいい
何が楽かは人による
何も考えずに書くのが楽な奴もいるしメンテナンス性や再利用性が高いのが楽と言うやつもいる
DataContextなんて設定するの二〜三回だけだしコードでやろうがXAMLでやろうが大して手間は変わらない
datacontext使わないで何でデータバインディングやるつもりなんだ?
xamlから直接グローバル呼び出したらそのxamlは同時に1つしか呼び出せないじゃん
DataContextなんてルート以外DataTemplateで勝手に設定されるもんだろ
使わないなんて誰が言ったんだ?
ちょっと見当たらない
684 :
678:2011/10/29(土) 21:11:56.77
すまん書き方がおかしいな
this.hogePanel.DataContext = hoge; //hogePanel内のコントロールへのバインディングはXAMLで定義する
とか
this.listView.Items = GetItems(); // 細かいことはItemTemplateで
みたいにコードからある程度直接データを設定するってこと
初心者なんですがDataContextってモデルですか?
それに対してVMとVが決まるなら疎じゃないですよね
notifyとdataerrorつけたクラス作ってデータ用のプロパティいれてウインドウにバインディング
っていうのがおれの思うデータバインディングだけどおまえらのとは決定的に違ってたようだ
本来WPFは
>>684のような使い方をするもの
MVVMでも結局VMの中で this.Hoge = model.LoadHoge(); のようなコードを書いてるわけで
>>684スタイルに比べてMVVMが楽なわけじゃないんだよ
Presentation Modelパターンを採用してもバインディングのおかげで大して面倒にならない、っていうのがMVVM
Presentation Modelパターン
こういう知識ってどこで手に入れているの?
ネット漁っても曖昧なことしか書いてなくてよくわからないんだが
ControlerとPresentationの違いもよくわからないし
VMがPresentaitionにあたるの?
VMはpresentation model(PM)に相当
概念がわからんってやつは
msdnのマガジンか@ITの記事くらい目を通しておくといい
わざわざ VM 作る理由は View の変更を簡単にしたりテストを簡単にしたりするため
プログラミングって覚えること多すぎだろ・・・
やっぱ道具が少ない低級言語から始めるべきかな
もうライブラリをぐぐるの疲れた
MOV AX,BX
01の機械語単純だからマジオススメ
インテリトレースとリッチアニメーションを無効にしたら
デバッグが軽くなったわ
しかもインテリトレースってメモリ食うよな
何に使うのか知らないけど
豚にultimate
趣味だからたいしたもの作ってなくて重いとか感じたことないや。
これBlendないと入門きつそう。
ああああああああああああああむかつくううううううううううううううううううううううう
ツリービューにコレクションバインドするだけでもできねええええええええええええええ
くそおおおおおおおおおおおおおったれええええええええええええええええええええええ
しかもXAMLはドキュメーントフォーマットができないから
いちいち手動でインデントしたり削除したりくそおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお
ヒエラルキーってなんだよ糞ったれーーー
内部でどういう処理してるのかさっぱりわからねーーーー
糞糞!!!!
糞ったれがあああああああああああああああああああああ
やりたいこといっぱいあるのにXAMLの糞のせーで全然先にすすまねええええええええwwwwwwwwwwww
>>701 それみたみた
それ構造が複雑すぎてわからねーんだよ
クラス自体が再起?になっているみたいで
それがバインドしただけでなんで次々に
下の階層までノードが追加していくのかがよくわからない
てか、HierarchicalDataTemplateがなんなのかとか
x:keyってなんなのかって疑問がずっとあって先に進まないんだよ
それぞれのMSDNみても機械語翻訳と専門用語だらけでさっぱりわからん
そのまんま丸暗記すりゃできるよ
でもそれって理解したことにならないじゃん
それがイラつくんだよ
いや再起はそっちじゃないな、
http://visualstudiogallery.msdn.microsoft.com/20dfcfd5-d763-4e9a-a8d7-f421e435622c こっちだ
これは細かくやり方教えてくれたが、手順がわかっただけで
それでなんでできるのかがわかんね
特になぜ再起ができているのかがわからん
選択ノードが変わるとヒエラルキーのプロパティも全部変わるってことなのか?
あと、向いてないとかいちいちうぜーんだよ。向き不向きの問題じゃないし
お前にやめろなんて言われたくないわ、お前に雇われているんじゃねーんだぞ
>>701 それ見て分かる奴がこの世にどれだけいるんだよ
それだけみて何がわかるっていうんだよ
誰も分からないぞそんなの見ても
東大出てたってわかるわけない
それで向いてないってどういう根拠で言っているんだお前はよ
すぐ理解できないと向いてないって判断すんのか?
お前プログラミング初めて何年よ?
初めて1か月目でそれ読んですぐ理解できんのか?
コピペやちょっと改変してやれる程度だろ
ほんとうぜーな2ちゃんねらーは
てか、プログラマがカスなのか
カスばっかだなどいつもこいつも
きしょく悪い人間にクズが
あーわかったわ
お前がダメ人間なんだなwwwwwww
お前はちょっとやってできないと向いてないって思いこむ
ネガティブな根暗な人間なんだな?www
お前今まで何度も向いてないとかダメ人間扱いされてきたから
リアルじゃ言えなくてネットで言ってストレス発散してるんだなwww
お前それ理解できるのに何年かかったよww
WPF学び始めてからじゃにぞ、下積みから全部合わせただよw
そういう下積みがありゃ、それみりゃすぐ理解できるかもしれんが
こっちはプログラミング初心者なんだよカス
てか、お前もわからないんじゃねーの?
あーそーだ、きっとそーだなwww
>>701のサイトに書いてることなんてざっくり概要説明してるだけじゃん
建築に例えると、間取りはどうとか、壁紙の色はどうだとかww
そういう表面的な部分をだらだら書いてるだけ
そんなのよんでも理解した内にはいらねーよ
間取りわかっただけで、家が建てられるか?
もっと別の知識が必要なんだよ
そういうのを事細かに丁寧に説明しているようなとこがどこにもないんだよな
プログラマはコミュ障が多いみたいで、相手に対してわかりやすく説明する能力がないんだな
相手の気持ちもわからないから、平気で煽る
そういうカスばっかだな
>>702 理解力の無さを言語のせいにする時点でプログラマに向いてない
マニュアルこなすだけの仕事に転職しとけ
もともとプログラマじゃないしwwアホかwwww
お前みたいな根暗な人間は日陰でずっとキーボード叩いてろハゲデブwwww
何が理解できないのか理解できない
1)ソース内容で何階層にもなるのにtreeviewitemが1つしかない
2)1つしかないからイベントに当該するtreeviewitemがわからない
3)データ対コントロールの対応がわからないからデータ更新できない
そんなとこじゃね
単に親から子に向けてItemsSource辿ってるだけにしか見えないけど違うんか
いやーなんとかできたわwwwwwwww
でもまだ理解はしてないがな
Class Data
List<Top> DataList
class Last
public string Name
List<string> LastItems
Class Top
public string Name
List<Last> TopItems
Xaml
<HierarchicalDataTemplate x:Key="LastTemplate"
<TextBlock Text="{Binding Path=Name}"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate x:Key="TopTemplate"
ItemsSource="{Binding Path=LastItems}"
ItemTemplate="{StaticResource LastTemplate}">
<TextBlock Text="{Binding Path=Name}"/>
</HierarchicalDataTemplate>
TreeView
ItemTemplate="{StaticResource TopTemplate}"
ItemsSource="{Binding Path=TopItems}"
まだいたいこんな感じの内容だが
これをすると、子ノード(LastItems)にさらに子ノード(LastItems)が延々続くんだよ
どうしてこういうことが起きるのか理屈がわからないんだよ
TopItemsもLastItemsもそれぞれ別のクラスのListなのに
TreeViewでTopItemsの項目をクリックするとまたTopItemsが表示されるんだよ
わけわかんね
>>710 それをしたいんだから当然だろ
>>709 そうだな、最初は1つしか表示されなかった、これもなぜだかわからない
Topクラスのアイテムは表示されるのに
Lastクラスが表示されない
TopのヒエラルキでItemsSource=TopItems/LastItemsとしても表示されない
結局、プロパティのバインドでstatickresouceのapplicationなんたらのってやって
フルパス設定したらいけたけど、これも納得がいかない
そもそも、DATACONTEXTにviewmodelをバインドしているんだから
publicなプロパティはそのまま通るはずなのになぜ通らないんだ糞が!!!
>>708 何もかもだよ
staticResouceとかも意味わからない
@ITのとこも全部みたが説明自体が難しくてさっぱりだ
丸暗記するのもなんか腑に落ちないしな
あーいらいらするわ
これ独学でやるの無理なんじゃね?
WinFormsなんて最初から普通にプログラムかけたぞ
めちゃくちゃわかりにくいわXAML
ただ、ツリービューにコレクション表示したいだけがwww
なんでこんなわけのわからないコードを書きまくらなきゃいけないんだよ
どーこーがー生産性向上なんですかーーー?おしえてくれませんかねーww
こんなアホ臭いことずっとやっていかなきゃならないのかよwwww
WPFうんぬん以前にツリー自体理解してないんじゃね?
人に教わる態度じゃないな
Pythonならさ、あることをするには1通りしかないってスタンスがあるじゃん?
でもC#もWPFも何通りもやり方があり過ぎてほんとうざい
いらない機能大杉だろ
古いライブラリとか全部削除していけよカスが
あとこれ
TreeView ItemsSource="{Binding Path=Data}" />
DataクラスはPublicで公開しているのにDataクラスのNameが表示されないんだよ糞が!!!!!!!!!!!
ヒエラルキにDataオブジェクトを渡しているってことなんだろ?
なんでヒエラルキでNameプロパティバインドしているのに何も表示されないんだよ!!!
だから仕方がなく、ItemsSource="{Binding Data.TopItemsにすることになったんだが!!!!!
ほんとは一番トップにはData名表示したんだよ!!!ボケナス!!!!
エラーもでないし、エラーでてもまともな内容表示されないし
インテリセンス効かないわでほんと糞だな
あー、サンプル作ってやるから仕様かけよ
何がしたいのか要領得ないぞ
>>717 Data>Top>Last
3層で成り立っているデータを表現したいんです
フォルダ構造のように関連性のあるデータなのでこんな感じで作りました
でも、DirectoryInfoとかでがっつりそのまま表現したいんじゃないです
Class Data string Name
Class Data List<Top> Tops
Class Top string Name;
Class Top List<Last> Lasts
Class Last string Name;
3層になっていて、Nameがノード名に表示されます
MVVM Tool使っているので、WindowDataContextはViewModelがセットされています
Window.ResouceにはResourceDictionaryが設定されています
ViewModelでDataがpublicで公開されています
やりたいことはたったこれだけのことなんですけどw
まあ、一応できたのはできたんですけどね
たぶんフレームワークに対する認識が2世代ほど前だから理解できないんだよ
コントロールはただのクラスなんだから必要があれば自己言及して下層にリスト作るくらいするさ
もっとオブジェクト指向とか勉強すればいいよ
>>719 はあ?初めて触った言語がC#なんだけど?でたらめな決めつけやめろよ
自己言及ってなんだよ人工知能か?
具体的に書けよ
オブジェクト指向はある程度理解しているつもり(一応一通り学習した)
ただ、このXAMLやヒエラルキの仕様がわけわからんだけだ
オブジェクト指向の一体何が俺に欠けているというわけ?
具体的に指摘できるのか?できないでいうのは単なる決めつけだろ
お前らは学校や現場で誰かに教わってるんだろ?
俺は独学だからな、まったくの無知からやってるんだよ
向いてるかどうかなんてやってみないとわからないだろアホ
そうやってすぐ諦めるんじゃないよ、だから出世しないで一生PGなんだよバカ
言語がわからんのじゃなくてライブラリ群の使い方とその調べ方がわからんのだろ
まずその認識はあるか?
>>719 あーわかったお前これ自分のこといっているんだろww
お前がVBばっかりやっててオブジェクト指向全く理解できないで
リストラされたから、その腹いせで言っているんだろwww
昔の言語は上から順番だったからな
お前そういうのばっかりやっててついていけないんだろ?w
だから、質問者にオブジェクト指向を理解してないとか何度もいうんだろw
お前がそのレベルなんだよwww
コントロールはクラス?何当たり前のこといっちゃってるのwww
そんな次元ですか?
TreeViewItemをクリックしたときのヒエラルキの挙動が知りたいんだよ
こいつなにやってんだよ全く、
哀れな奴だね
読んでも調べてもわからないってことはライブラリ作成者が想定した知能に到達してないってことさ。
せめてエッセンシャルでもよんでりゃ話は別だが金もかけたくないんじゃ話にならんね
まぁ、それだけ調べて分からない&分からないことが説明できないなら
ここじゃもう処置できないな
金払ってリアルで誰かに教えて貰うべき
過疎ってるよりはマシに思えてくるから困る。
暴れてるやつに賛同しないけど
言ってることに若干の真実が含まれていると思う
WPF作ったやつはある種の馬鹿だと思ふ
現状見ればわかるけど使われない理由を理解してない
最初に俺もHierarchicalDataTemplateでつまづいた
ルールが決まってんだけど自由に書けるようになってるせいで
思い通りに動かなかった
1度WidthやHeightに数値を設定した後、Autoに戻すことは可能?
黒いダイヤマークを右クリックして 値のリセット
731 :
デフォルトの名無しさん:2011/10/30(日) 10:50:37.73
>>729 .Height = new GridLength(0, GridUnitType.Auto);
>>716 >Pythonならさ、あることをするには1通りしかないってスタンスがあるじゃん?
おまいそんなのまだ信じてたのか?
>>717 なんだよできないのかよカス
>>728 そうそう自由にかけるんだよ
正しい使い方はこれです!みたいなのがわかんねーんだよ
>>725 早く答えろよ
ヒエラルキは内部でどうしう処理してるのかさ
誰一人答えられないじゃん
偉そうなこと言って、俺は知能が高いとか言っちゃって
ただ盲目的に丸暗記しているバカばっかじゃんwwwwwwwwwwwww
プログラミングに知能なんていらないよwww
時間と知識だけでいける分野
お前らが何年もかけて学んだことを
おれは数日で会得しているんだからなww
知能でいったら俺の方が上だよwwwwwwおっさんwwwwwwwww
>>724 エッセンシャルなんてしるかよアホか
連休でも無いのに、変なのが湧いたなあ
735 :
デフォルトの名無しさん:2011/10/30(日) 14:11:56.53
初歩的な質問ですが、よろしくお願いします
タブを使ってクラスを切り替えて、生徒の成績をリストボックスで表示するというところまではできました
そこでそのリストボックスにコンテキストメニューを入れて使いたいんですが、
どのタブを表示している場合でも特定のクラスに結びついていてうまく表示されません
多分最初にメニューを表示した時のクラスに対してのメニューが表示されていて、
それが使いまわされているような動作です
これを何とかするにはどのようにすればいいでしょうか
喧嘩腰じゃ教えて貰える物も教えて貰えないのにな。
確かに
「色々な方法があります」
と見せかけておいて、
「ですが、パフォーマンスが優れた方法は1つしかありません」
「ですが、パフォーマンスが優れた方法は1つもありません」
だったりすることが多い。
WPFよりマシな物が無いから使ってるけど、
酷いフレームワークだよこれは。
だからWinFormsを使ってろとこのスレでも散々言っているのにw
なぜウンコを突きに来るんだ
子供かお前は
>>735 コンテキストメニューはどの項目に設定してるん?
WPFに手を出した奴がWinFormsで満足できるわけがないだろう
WinFormsで十分な方はお帰り下さい^^
>>735 WPFのコントロールはホント品質が低くて困るな。
俺は ContextMenu.Opened イベントに、
contextMenu.DataContext = ((FrameworkElement)contextMenu.PlacementTarget).DataContext;
のようなコードを入れて対処してるよ。
ビヘイビア作れよ。イベントハンドラ書かずにタグ二つで済むようになってはかどるぞ。
正確には「Templateを考慮すると、まともな選択肢はBehavior以外には無い」だな。
そして、バットノウハウBehaviorだらけになってうんざりする。
ItemContainerGenerator使えばコードで制御できる
わざわざ作らなくてもBlend付属ビヘイビアだけでできる気がしてきたぞ
>>735>>741って実はx:Shared="False"にしていないだけというオチでは?
コンテキストメニューをリソースに入れて、インスタンスを共有してそうな感じなんだが
よし分かった。
WPFが分からないやつは俺とともにWinFormsへ還ろう。
バカじゃねーの?
>>746 x:Shareは根本的な解決にはなってない。
DataContextが変化しないなら、
x:Sharedでもまともな動作になるが(ただし、性能は悪い)、
PlacementTargetが変わらずにDataContextが変化する場合には
x:Sharedは無力。
そもそも、サンプルではx:Sharedがtrueになってるのに、
x:Sharedをfalseにしなきゃいけない時点でおかしい。
http://msdn.microsoft.com/ja-jp/library/ms742412(v=vs.80).aspx
なんかひどい流れだなw
MSの最近の傾向からして、WPF的なものが今後なくなる
事はないにせよ、WPF自体が陽の目を見る事は決してないと
思えてくる。
formsで出来る事は全部できるのに使いこなせないってことはC#がわかってないんだよ
最初から分かってた事じゃないかw
MSの投入する新技術ってのは、
投入の時点で長生きするものか見切り発車かはっきりしてるから分かりやすい分ましだよ
普及はこれからのMS次第で開発者は関係ないだろうな
754 :
デフォルトの名無しさん:2011/10/31(月) 14:46:15.56
VB6ユーザーがWPFに移行できてはじめてWPFは普及したと言える
C#のドキュメントが多いうちはまだまだ普及しないね。
K&RCやCOBOLユーザーが現役なくらいだからいるだろ
VB6止まりなやつが周りに何人か・・・
描画劇遅のWinFormにうんざりしてWPF触って…絶望した。
多少見た目が思い通りにならなくても、
キビキビ動く方がいいわ
GDIオンリーのWin32APIならもっと早いぜ
リッチに魅せるための自由度強化だからなあ
リソースがたいして変わらないなら何かが犠牲になるのはしゃーない
ビットマップキャッシュ
すごい高度な処理して重いんだったら、みんなしょうがないと思ってくれる
だろうけどな。ありきたりなコントロール部品が載っかっただけの、普通の
ウインドウ表示させるだけなのに、ユーザーがもっさり感を感じるようじゃ
だめだと思うの。
きみら、重い重いいうけど具体的に何が重いかまでは調べられてないよね
買ってきたゲームプレイするだけの素人さんならともかく、そんないい加減な評価で済ませられるのか?
>>763 アホでも作れて速くて精確なのがいいのです!
っていう無い物ねだり
MFCやそれ以前で組んでた時はどうしてもCPUが非力だからアルゴリズムでなんとかしようとしたり
バックグラウンドにまわしたりいろいろ工夫してたのにねぇ
ああ、MFCってのはもちろんC++のネイティブだよ念のため
でも、高速化のために費やす工数ってのは不毛だよな。
Windowsが生まれた頃から比べて、CPUもビデオカードも
はるかに高速化して、メモリ容量も格段に増えたというのに、
その恩恵を感じられないのはカナシス
何を言ってるんだ?
WinFormsで自前描画しまくってExpression Blendみたいな見た目のアプリ作ったら
WPFよりももっと糞重くなるぞ?
なにもわざわざExpression Blendみたいな見た目の
アプリを作る必要はあるまいに
で、WPFで作る場合、見た目変えたらもっと軽くなる訳?
見た目でしか叩けない馬鹿の相手するなよ
利用を強制してるわけでもないのに
勝手に手出して
勝手に理解不能とかほざいて
勝手に失望して
勝手に当り散らすな
騒いでるやつらは最初の勝手に手を出すって段階すら行ってないだろ
>>764 上級者でも重いですw
ボタン1個配置しただけで重いですw
使えません終了
>>762 そうですね工夫するとしたら
GUI部分はすべてWIN32APIで描画することですかねwww
そしたら軽くなると思います
つまりWPF不要
>>767 はあ?
3Dゲーですらサクサク動くPCで
何であんなに糞重いんですか?ww
WPFでゲームのようなGUI作ったら糞重くなるぞ?w
>>767 え?見た目普通でいいですww
そんな派手なものいりません
ただのビジネスアプリですから
逆に邪魔ですwww
ウィンドウズアプリでボタン回転したりアニメーションする必要あるんでしょうか?
99%いりませんねwwwwwwwwwww
業務アプリで見た目どうでもいいとかワロタ
見た目どうでもいいとは個人アプリだけだろ
それにCore2Douレベル程度でも一万件バインドで問題なく動くけどな
動けばいいってものじゃないんですよねw
ソートするだけで何秒も待たされるGUIなんて糞でしかないわw
どうでもいいなんて言ってませんよww妄想しないでくださいねwww
回転したりアニメーションするよりレスポンスが重要って言っているんですよバカですねーwww
生産性が上がるわけでもなくw
軽くなったわけでもなくww
MACユーザーが使えるわけでもなくww
MONOにも見捨てられて落ち目WPF涙目乙www
WPFを利用したアプリって何かありましたっけ?www
VSだけですよねwwwwwwwwwwwwwwwwwwwww
しかもくっそ重いIDEで宣伝どころか逆効果じゃありませんかねww
釣る気があるのかないのか判断に困るw
夜にやれば少しは釣れそうなのに、なんで深夜に釣り糸垂らしてんだよwww
まぁ書けない側の人なんだろね
WinFormに比べて上がるも下がるも書き方次第
普通に書いてれば一万件程度のバインド・ソートで遅くならん
むしろどんなソース書いてるか気になるわ
列数が増えるとソートが重くなってくのはWinFormも変わらん…デザインの問題だろ
バインディング1つ満足にできないバカに遅い言われてもばかばかしくてやってられませんわ
>>782 >バインド・ソートで遅くならん
>列数が増えるとソートが重くなってく
矛盾したこといってますねww
>>783 WPFがWinFormsより軽いとでもいいたいのですか?wwww
だったら証明してみせてください
お前池沼で体感ではわからないみたいだから
1万件バインド後のウィンドウのサイズ変更、スクロール、ソートをFPSとタイムスパンも計ってね証明してみせてねwww
>>784 2005より2010のIDEの方が重い
はい証明しました^^
>>782 口ではいくらでも言えますよwww
軽いなら証明してみせてねwwwww
もしかしてプログラミングできないの?www
C++すらやったことのな能無しがWPFやって軽いとか言ってそう
どうせ作っているのはメモ帳程度なんだろうなw
数年おきにガラっとやり方変えられて
しかもそれがいまいち普及しねえんだからこき下ろしたくもなるだろ
変えろなんて誰が言ったよ
上司か?
ところでWPFでアプリ作ってるここの人達って、WPFじゃないと作るのが
困難なくらい、凝った外見のアプリってどれくらい作ってんの?
何がところでだボケ
煽ってねえで死ね
糞WPFの信者さんはバインドの仕方もわからないらしいよww
糞に触るな病気になるぞ
そもそも重い重い言ってても使っててそんなもっさり感なんて感じないんだが
重くしてるのは自分じゃねーの
デバッグ実行だと重かったり、CommandのCanExecuteChangedを自動化してるとコマンド増えるととろくなってきたりはするが。
うるせえ黙れ
デバッグ実行やIDEが遅いだけで生産性は激烈に悪化するんだがな。
WinFormsが面倒すぎるから
普通の見た目でもWPFじゃなきゃ作るの困難だわ
ぶっちゃけデバッグ実行でも言うほど重くならんだろ
お前らどういう作り方してんの?
2005のままでよかったな
WPFイラネ
>>797 WPFで同じことするとコード量倍になりますが?ww
普通の見た目のものを作るのが困難ってwww
初心者丸出しですねwwww
>ぶっちゃけデバッグ実行でも言うほど重くならんだろ
また勘ですかwwww
winfomrsより軽いなら証明してみせてくださいよww
あれれww反応がないねwww
やっぱり糞重くて証明できないかwww
WPFで重くないとか言っている奴って
ダイエット食品で痩せましたって言っている奴ぐらい怪しいねwww
WPFも大分レスポンス的な部分はかなり凝った事やっても軽快に動く様にはなったよ
動きだしてからの速度面だけについてはな
.NET起因の起動時間が掛かるのとメモリジャブジャブが好きになれないけど
まぁこれはWPFだけの問題じゃないけどWPFでリッチに作れば
尚更ジャブジャブだから無関係でもないんだが
つまり使えないってことで終了
使いこなしてる人間に「こんなものは使えないんだよ!」とか自分でみじめにならんのだろうか?
ロジカルに考えられないからC#もまともに書けないのか?
では使いこなしているあなたにお願いがあります
Winフォームより軽いWPFソフト作ってくださいwwww
1万行100列のデータグリッドを作って
サイズ変更、ソート、スクロールのそれぞれのfpsと時間を計って証明して見せてwww
逃げるなよww
それでお金イクラくれる?
wpfで書かれてるプログラムはー!?とか逆切れしてたけど
snoopとilspyがそうだな
>>804 使いこなしている人が重いって言っているんですが?www
反論ありますか?www
「軽快に動く」とか誇張してますけどねwww
あくまで以前のWPFと比べてってだけで
WinFormsとは比べてないですけどねwwwwwwwwwwwwwwwwwwwww
>>806 この程度のプログラムを金貰わないと作れないぐらい時間かかるんですか?www
どんだけ低脳なんですか?wwwwwww
てか、乞食丸出しですねwwwwwさすがニートwwwwwwwwwwwwww
社会常識のないお子様には困ったものだ
証明しろというと、あーだこーだ言って逃げてばかりですねーwww
ほんと怪しい占い師みたいwwww
全く根拠がないのに信じさせられると思っているんだなー信者さんはwwww
WinFormsより重くないというなら証拠を見せてくださいwwww
至ってシンプルなことを言っているんですが
バカにはわかりませんか?wwww
WinFormsより軽いなんてソース一度もみたことないんですが?www
逆に糞重いって記事は大量にありますが?wwww
これについて見解ありますかね?wwwwww
WinFormsとWPFも仕方なく仕事で使ってるが
どっちもはっきり言ってゴミと思ってる俺がここを通りますよ
813 :
デフォルトの名無しさん:2011/11/01(火) 14:32:31.99
1万行100列のデータグリッドって設計が間違っているよなw
間違った設計のソフトが遅すぎるってどうでもいい話だ
WPFが速い理屈は単純で、DirectXを直接叩いてるからだよ
エッセンシャルの最初に書いてあるんだけどねぇ…貧乏人はさもしくて困る
>>813 じゃあ何行だとただしいんですか?wwww
何行でもいいですよwwwwwwwwwwwww
>>814 じゃあ早いのを証明してみせてwwwwwww
WPFが重い理由はそこじゃないんですけどねwwww
ほんとバカだこいつwwwwwwwwwwwwwwwwww
>>813 計測するための負荷テストだろ
アホかおまえは
うるせえよ
1万行100列のグリッドとか何でやっても重いに決まってるわ
Linuxなら何使っても速いんですけどねw
WPF使うなんてアホでしょwwwwwwwww
ああそうでごさいますか
阿保か…
ケースによってWinFormより速くできるのをできないとか言うなら他言語使ってりゃいいのに
>>818 比べるっていってるんだよ頭湧いてるのか?
>>821 早くなる証拠見せてwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
何で多言語?どこからその発想出てきたの?wwww
お前WPF自体理解してないだろwwwwwwwwwwww
今日はやけに草いな
WPFおもすぎてやるき無くした
重いといってるのは、グラボがしょぼいか、ドライバーが古すぎるか、その両方だよ。
あ・・・あとオンボードのビデオでメモリがしょばいというのもあったな。
とうとうグラボのせいにしだしたかこのバカ
ボタンとデータグリッド配置するだけでどんだけグラボの性能いるんだよww
結局それって重いってことだろwww
OSからしてある程度のグラボが必要なこの時代に何を言っているのやら
こんなところでネガキャンしてどうするの?
>827
いや、俺は今日初のカキコ。
重いのは否定しないよ。CPUパワーだけで比較したらWPFは使い物にならん。
高速グラボを使って初めてパフォーマンスが出る設計だから仕方ない。
あとWPFの標準DataGrid は使い物にならんのも事実。
Infragistics のXamDataGrid の方がよっぽど速いよ。
DirectX使ってるんだからGPU使うのは当たり前だからな
あとXPだとただのDX9アプリとしか認識されないから微妙
Vista以降のAero環境だと良く動く
831 :
826:2011/11/01(火) 17:51:09.12
>>828 いや、貧乏人は予想以上に多い。
我々の常識は彼らの非常識だから、噛み合わんのは仕方ない。
832 :
826:2011/11/01(火) 17:53:52.40
まぁ貧乏人の彼らにはXP&VB6と心中してもらって、我々はWindows8を想定したアプリを研究・開発するのがベター。
その方がよっぽど金になるしねwww
833 :
826:2011/11/01(火) 17:56:35.22
仕事無くなったら、スキルある方が勝つんだけどねw
第二のリーマンがもうすぐ来るかも知れないこの御時勢で、
いまだに従前のプログラミングスタイルに固執してるのは、自殺行為としかいいようがない。
こんな所で自称情強気取りじゃ底辺IT土方ですって自己紹介してるようなもん
初カキコども…
最新のゲームでもそれなりに動くCPUとグラボなのに、動作もっさりの2010 IDE
ってのはどうなってんのかね
しらねえよ
PC解体して頭突っ込んでな
動きましたよ、ちゃんと
モニタの映りが悪いんじゃないですか?
>>828 i7のGTX580なんですけど?ww
てか、グラボの話じゃないんですけどねーw
同じコントロールおいてWinFormsより軽いかどうかの話なんだけど
どうして話逸らすの?www
グラボがしょぼくてよよくても、比較はできるだろバカなの?
>>829 つまり糞重いってことですねwww
高性能グラボじゃないと糞重いWPF誰がやりますか?ww
3Dゲーさくさくマシンで糞重いWPF誰がやりますか?
3Dゲーで何万ポリゴンも描画してもさくさく動くのに
WPFはデータグリッドに数百件バインドしただけで
糞重いのはグラボのせいなんでしょうか?
どれぐらいのスペックなら快適ですかねwwww
グラボがよくないと快適じゃないって重いってことじゃんwwwwwwバカかwwwwwwwwww
そうだねフヒヒ
DirectX叩きって進化どころか退化しちゃったな
ゲーム作るわけじゃないのにさ
ゲームゲームゲェムウウウウウウウウウウウウウウウウウウウウウウウ
ハァ?達人とアホは何でだってゲーム作るわチンカス
WPFでもViewport3Dでそれなりの2Dゲームは作れるパフォーマンスはあるぞ
アフォーマンスの間違いだろ
いいから一億万件のデータ早く表示しろよおう早くしろよ
>>826 OSがVista以降ならCore2Douのオンボでも問題なく動くよ
XPはCPUももっと前のだから比較してないけど
問題なく動くから何なんだよくせーんだよ
無理難題を要求した上に相手を罵倒するとか顧客よりもひどいな
まず自分でWPFとそれ以外で実装してコードとベンチマーク晒したら良いのに
やっぱコード書けない人?
メモリ食うし重いし諦めたわ
今から聞くんですか?!
タダでコード書いてもらえるとでも思ってるのか
どうせ書いても叩くだけなのにな
タタクタタクタタク
シゴトシゴトシゴト
そうだとも
ハハッ
やっぱり叩くだけだったな
ム板なのにろくにコードもなく煽りだらけ
要するにWPFもこれが現状なわけだ
スクロールがカクカクのWPF
俺はWPFが悪いとは思わない
だが、標準コントロールの品質は悪いと思う
ぶっちゃけ業務用のAPなんてDataGridの速度次第だと思う
そーですよね
1万件目にいれますもんね
見てるふりですけどね
ダーっと
WinFormsなら1万行でもヌルヌルだね
それに比べてWPFは糞重くて使い物にならない
ダイエットしろデブ
参考までに1万行でもぬるぬるなWinFormsとやら見せてくり
タダで晒すと思ってんの?
金貰えるほどの実力もないんですね
ハハッ
オリコーさんは糞して寝てろや
おらもっと暴れろや
かかってこいよ
晒してくれたら100万やるから住所と電話番号教えてくれ。
いいからかかってこいよ
>834
底辺IT土方でも仕事取れて飯食えるのが勝ち組。
技術ない使えないSEもどきは負け組。
>839
だったらやるなよ。タコw
社命でもWPF案件全部断れよ。タコw
オーナードローをやりたくない俺にはWPFまんせー状態だわ
マンセー
>>874 100万くれるなら晒してもいいかなと思った自分が悔しい。
最近、業界の納期おかしくね?
1日は48時間しかないのに。
能無し乙
アンチが無視できないほど勢力を増してきたという事だな。
昔の過疎っぷりからすると嘘のようだ。
アンチしかいないのに何言ってるの?
往々にしてその手の輩は声がでかいものだ
WPFってWebアプリ専用?
そうだけど?
くだらない愚痴はム板じゃなくマ板にかけ
DataGridのスクロールがくそ過ぎるというフィードバックがコネクトにあった筈だか、やはり都合が悪過ぎて消されたか。
>>888 >都合が悪過ぎて消されたか。
平気で陰謀論を語るとは愚かな奴だな。この馬鹿はまともに調べることもできんのかwww
DataGridなんて糞コントロール使うなよ。XamDataGrid使え。
高い
public ViewModel()
{
Thread t = new Thread(new ThreadStart(Counter));
t.Start();
}
private void Counter()
{
for (int i = 0; i < 100; i++)
{
Thread.Sleep(100);
Count++;
}
}
こんな感じでprogressBarのValueにバインドしたCountで
ゲージを増やしていきたいのですが全く反応しません
別スレッドからの場合は特別な処理が必要なのでしょうか?
バインド自体は上手くいっていて、メインスレッドで単純にCount=500とした場合は表示されます
UIスレッドで処理してないから
Dispather.Invoke系使う
ってかVMでスレッド?
と思ったけど別そうだ
バインドどうやってんの?そこが変そう…
PropertyChangedじゃないの
単純なBindingなら別スレッドからでも特別な処理する必要ないから
CountのsetでPropertyChanged飛ばしてないんだろうな。
>>892です
PropertyChanged忘れてました
WPFは別スレッドからでもControlにアクセスできるみたいなので
試してみたかったのです
> WPFは別スレッドからでもControlにアクセスできるみたいなので
できないよ?
便宜のためにINotifyPropertyChangedの変更通知だけ自動的にDispatcher通すようにしてる
DependencyPropertyやINotifyCollectionChangedの変更を別スレッドからやると例外になる
>>898 >DependencyPropertyやINotifyCollectionChangedの変更を別スレッドからやると例外になる
ああ、これです!こっちだと無理なんですね
ありがとうございます
乙です。
検証PC:XP SP3 c2d E8400 GF9600GT
全画面でもキーボードでスクロールした場合はスムーズだった
でもスクロールバーだと重い
・8000ファイルを全画面でスクロールバーの空いている部分をクリックしたままスクロール
0.2秒ぐらいの遅れ 最後まで到達するのに48秒 スクロール回数247回 cpuを8割使用
・同じくカラムの反復部分を削除してスクロール
0.15秒ぐらいの遅れ 33秒
・1000ファイル、反復無しで試してもほとんど変わらず(どうして?)
スクロールで0.1秒以上遅れるのは結構ストレスですね
PC買い換えろってことですが、最近の7用のPCだともっと早いのかな
RenderOptions.ProcessRenderMode
この部分をコメントアウトしたりDefoultにしたけどGPUを使ってくれなかった。XPだから?
OnCreateAutomationPeer()
この部分コメントアウトしたけど体感速度は変わらなかった
参考になりました。ありがとうございます。
wpfはvista用に作られたもんだし、xpは動くだけだよ
>>901 列にも仮想化が効いているので見えない範囲の列が増えても速度にはあまり影響しません。
列が増えると重いと書いてあるのは仮想化が効いていない場合ということになります。
行も仮想化されてるので見えてる行数をスムーズに表示できるかどうかが問題です。
>RenderOptions.ProcessRenderMode
文字列をひたすら描画するようなもので効果があった試しが無いです。
GPUのバグで描画がおかしくなっている方が怖いです。
>OnCreateAutomationPeer()
強烈に遅くなる環境がありますが、影響しない環境では何も変わりません。
7以降で問題になるのでXPは該当しないはず。
StackPanel以外のVirtualizingPanelも欲しい今日この頃
905 :
デフォルトの名無しさん:2011/11/03(木) 19:16:05.39
すいません、初歩的な質問ですがお教えください。
ユーザーコントロールを作成しています。
XAMLの中にStackPanelを配置し、さらにその中にButtonを一つ配置します。
この時、ButtonのContentに対して、コード側で定義した依存プロパティをバインド
させたいのですが、うまく動いてくれません。
どこか間違っていますでしょうか?
・・MyContorol.xamlの中・・
<StackPanel>
<Button Content="{Binding ButtonContent}"/>
</StackPanel>
・・MyControl.xaml.csの中・・
public string ButtonContent
{
get { return (string)GetValue(ButtonContentProperty); }
set { SetValue(ButtonContentProperty, value); }
}
public static readonly DependencyProperty ButtonContentProperty =
DependencyProperty.Register("ButtonContent", typeof(string), typeof(MyCalendar), new UIPropertyMetadata(0));
その書き方だとDataContextのButtonContext探してるはず
デバッグ出力にDataErrorだかなんだかって出ているだろう?
typeofがMyCalenderなのも変だが…
MyControlだと仮定して
<Button Content="{Binding ButtonContent,RelativeSource={RelativeSource AncestorType=MyControl}}" />
で望み通り動作しねえか
MyControlじゃ駄目かも
名前空間指定しないと駄目か
それ以前に new UIPropertyMetadata(0) でこけてるんじゃないか?(string 型のプロパティの既定値が 0)
0 を null か "" に変えてみたら?
>>905
910 :
デフォルトの名無しさん:2011/11/03(木) 21:20:51.30
>>906-909 ありがとうございました。
AncestorTypeをnamespace込みで指定したらうまく動きました。
>>906さんの仰るように、DataContextのButtonContentを探しにいってた
のですかね。不勉強なので、ちょっとこの辺の原理についても調べてみます。
blend uninstall&install
そのページに既知って書いてあるじゃん
MSの書いてるとおりの回避策を実行すれば使える
ニコニコ動画のプレイヤーの様な物を作るとしたら、フォームとWPF、どっちが軽くなる?
そもそもWinFormsだけでは作れないよ
WinFormsは動画の再生を直接サポートしてない
AxWMP使ったらWinForms関係ない
ActiveX使うとして、WinFormsで動画の上に背景透明な文字を描画って可能なのか?
そこでも激しくWinFormsを逸脱することになる気が
普通にLabelコントロールでできるじゃん
えっ
Forms.Labelの背景透過って後ろにあるコントロールを自分の中に描画させるという
大分無理のある仕組みで実現されてたはず
試したことないけどActiveXコントロールのしかも動画に通用するとは思えないんだが
動画のプレイヤーは正直どちらも向いていないよ
再生できない形式が多い
jane styleで使う動画プレーヤーのコードでも見てみれば?
>>920 そこはデコーダー使うにきまってるだろw
>>919 おれそれでニコ動画再生ソフト作ったしw
どっちにしろWMPなんだから一緒だろ
自分でデコードでもしない限りは
AxWMPなら再生形式はDirectShowフィルタに影響されるんじゃないかえ
文字に影つけたり動かしたりすることを考えるとWinFormsじゃ悪夢すぎる気がするぞ
テーマは悪夢かどうかじゃなくて軽いか軽くないかなのでヨロシク
WPFは糞重くて使えないわw
変わらん
結局行き着く先はWMPですから
WPFはDXで動いてるからWPFのほうがスムーズだろ
はいでは双方デモプログラムを提出して下さい
実測してみましょう
提出できなかった方は無条件に速度0です
動かせなかったわけだから当然だねw
動画再生のサンプルくらいいくらでも落ちてるだろ
自分で拾ってきて試せよ
自分って誰だい
IDも出ない板で主体を指さないでくれ
誰が誰だかわからないよ?
誰だ?誰に言っている?
どうでもいいからWinFormsの話じゃなくてWPFの話しろよ
WPFスレだぞ
速度の話をしてんだよ
ここは速度スレ
何がだよ
主語がない
違うよ
ここは重さスレだよ
ただし重さの原因や種類を話してはいけない
デブ
GDI+のほうが軽くてスムーズ
GDIだろ
GDI+は何でもかんでもDIB処理するから重いわ
お前ら毎日同じネタやってて飽きないのか
GDI+が軽いはねぇな確かに
XPまでのOSでWPFとGDI+比較するならGDI+かもしれんけど
そういう奴はいい加減VistaSP2以降にしてDirect2DとDirectWrite使え
XP"まで"ということはXPは含まないという意味だぞ
○98,ME,2000 < XP
×98,ME,2000 <= XP
日本語知らないとReadmeも書けないぞ
タクシーで渋谷「まで」行ってください・・・というと運転手は渋谷まで連れて行ってくれないの?w
946 :
デフォルトの名無しさん:2011/11/04(金) 19:01:35.87
>>944 え?
ex:「京都まで切符下さい」→京都の一歩手前の切符ですか?
小物アプリ作るには向いてないよな
処理する時間より起動する時間の方がかかるってw
このチケットは10日「まで」有効です・・・というと9日までしか使えないんですね。わかりました。
Readmeの前に恥を書きそうだ
納期は10日までです
9日までに仕上げないとだめろ?
要は余裕をもって行動しろって教訓
いいえ違います
当日は次の日の朝9時までですから
10日中に納品すればいいから10日朝仕上がってもOK・・・良くあることだろ
江戸時代以前は江戸は含まないんだっけ?
クライアントが待っててくれる間は当日
上司「まだできてないのか?」
部下「今日中にはできると思います」
上司「それじゃ間に合わん、昨日までと言っただろ」
部下「10日までと仰いませんでしたか?」
上司「10日までってことは昨日までだよ」
部下「昨日までってことは一昨日に仕上げるということですか?」
>>955 わかった、じゃあもう、XP「よりも前」ってこれから言うようにするわ
別に言わなくてもいいけど
960 :
デフォルトの名無しさん:2011/11/04(金) 19:34:03.05
言わない方が面白いなw
までも以前もその日を含むぞ
盛り上がってると思ったらw
962 :
デフォルトの名無しさん:2011/11/04(金) 19:39:23.22
Gから始まる3文字で台無し
GCL
GP…
HLSL使えばformsで速度勝負挑もうという気すら起こらないだろ
なんのことかわからんなら動画検索でもするんだな
DXがGDI+より遅いと思ってる連中ばっかりだから仕方ない
DXというよりそれ以外が重い
というかWPF自体が重い
WPFで3Dゲー作るわけじゃないんだから
DXだろうとGDI+だろうと変わらない
逆にGPUを直接使うことによりリスクの方が大きい
結局また暗黒時代に戻ったってことだな
小細工するくらいならDDBが一番速いですよ
リスクってなんだよ
説明できないからリスクなんて曖昧な単語使ってるんだよ
>>914 そこで実績のあるSilverlightをだな
WPFわかってきた。これすごいかも
<TextBlock/>
を
<TextBox/>
に変えるだけで反映された
あと、スキン作っておけば、各プロジェクトごとに簡単に差し替えて
オサレスキンにできるのがすごい
でもBlendほしいな
Bindingを動的に切り替えたいならDataTriggerを使えばいいと気付くのに1時間かかった
すぐに取っ掛かりが出てこないのが辛い
ここはお前の日記じゃない
日記は構わないが
お前が煽るスレじゃないのは確か
スクロールバーを上下反転させることは出来ない?
具体的には
Scroll.valueの中身を、↑方向にスクロールしたときに+して、↓方向にスクロールしたときは−したい。
ControlTemplate設定すればできるだろ。
何のために?
バインディングの都合なら、単に値反転させるコンバータで十分だと思うが
TPSゲーでも作っているのか?
982 :
978:2011/11/05(土) 22:25:02.41
>>980で出てるとおり、バインディングの都合。
なるほど、こういう時にコンバーターを使えばいいのか。勉強になったありがとう。