WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part16
2 :
デフォルトの名無しさん :2013/05/30(木) 20:54:31.58
WPFでヘッダーなど、各ウィンドウで用いる共通部品はどうやって作ればいいのでしょうか?
>>2 プロジェクトを作って、コードを書いてビルドすればいい。
>>2 多分ヘッダ付きのWindowを継承して作りたいのだと思うけど。
そういうTemplateを作ってスタイルあたりで設定する。
Windowの継承だと基底クラスはxamlを使えないので。
XAMLでMainWindowにStackPanelを配置して、 このStackPanelのChildrenを、別のWindowのClickイベントの中で操作したい。 ってときには、どうやるのが定跡なんでしょうか? MainWindow Classの中のstaticな関数をClickから呼べばいいのかと思ったけど、 そこじゃStackPanelはstaticじゃないから弄れないエラー言われて混乱中。
>>5 その別のwindowにStackPanelのインスタンスなどを渡せばいい
7 :
2 :2013/05/31(金) 10:53:58.45
ありがとうございました App.xamlにコントロールテンプレートを書いて作りました。 ただし、以下に書くようなスタイルを適用したWindowで、スタイルの中のGridの中身を書くことはできますか? <Grid Grid.Row="1" />としても、スタイルのGridをいじれるわけじゃなさそうですが
8 :
2 :2013/05/31(金) 10:54:25.82
<Style x:Key="DefaultWindow" TargetType="Window"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="Window"> <Grid> <Grid.RowDefinitions> <RowDefinition MaxHeight="66" /> <RowDefinition Height="*" /> <RowDefinition MaxHeight="66" /> </Grid.RowDefinitions> <!--ヘッダー部--> <Grid Grid.Row="0" /> <!--メイン --> <Grid Grid.Row="1" Background="Silver" /> <!--フッター部--> <Grid Grid.Row="2" /> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style>
Contentがない
>>7 ContentPresenterを入れて。
12 :
デフォルトの名無しさん :2013/06/05(水) 02:14:04.06
あれ? .NET でWinForm アプリを得意になって作ってたけど、 WPF ?何それ? 7年くらい前に雑誌で読んだことあったけど・・・これから来ると。 いつ来てたの?? 俺のアプリ、どれも地味さ加減半端ないのは 時代遅れ丸出しだったってこと?
いや、それはあんたの実力だろう
>>12 俺は3年ぐらい前に移行したぞ。
そんな俺が言うのもなんだけど、VS2010あたりでブレークした気がする。
15 :
デフォルトの名無しさん :2013/06/05(水) 08:25:14.57
ブレーク ブローク ブロークン
すみません。質問です。 RenderTargetBitmapのnewに時間がかかることがあります。 たぶん20ms以上かかることがあるんですが それ自体は別に良いのですが、その間メインスレッドまで 止まってしまうようなのです。 たぶんGCが動いてしまっているのかもしれません。 何か回避策はないものでしょうか?
>>12 どーせ個人的に公開してるものなんて、ちょんプロレベルだろ?
誰も見た目なんか気にしてねーよw ちゃんと動けば。
wpf を日本語でググって勉強するとMVVM教に自動的に入信してしまうぞw
きっと入信すると結構勉強するハメになるぜ!
18 :
デフォルトの名無しさん :2013/06/05(水) 12:00:33.23
しかしWin8発売して暫く経つけど、Modern(Metro)アプリでWPF大人気!デスクトップでもWinFormsオワタ!!ってなんないよね・・・ そもそもM$はWPFどうしたいん?WPF使わせたいならWinForms切らないと駄目だろ?? 速やかに移行させる簡単な方法はAppleが何度も示してるだろ?WinForms切ればいいんだよ、最新の.NET Frameworkは最新のWPF以外で利用できなくすればいいだけ。 マジでM$がWPFをどうしたいのかまったくわからん。
Win8自体下火だししゃーないやん
WinFXなんてものもあったなぁ(遠い目
WPFって未完成だもん
winForm捨ててゴリ押ししたらそれこそ酷いことになる
MS的にFormsは終わったUIになってるんだがな
>>14 3.5のWPFはXPで文字が滲む欠点があって採用しづらかった
WPFはとりあえず基本機能充実させるのが先 API系はwinforms追加しないといけないという情けない状態 それにしてもダイアログぐらいまともなの使わせろ
うちの会社じゃ2〜3年前かWPFでまともな業務アプリ組めてるんだがな。
まあいつの時代もこれなんだよな 新しい技術は、覚えれば使いやすいけど、細かいことをやろうとすると 融通が利かなかったり問題が起こったりする 結局古い技術の方が万能
で、まだまだVB6が現役なわけですね。
うむ
VBはない
wpfに出来てformにできないことって何?
何だろう・・・?
layout
UIのアニメーションが簡単
wpfに出来てformにできないこと ってだけなら 気合と時間かければ何でもできんじゃない? ただWPFでやると簡単なことが滅茶苦茶 難易度上がって手間がかかるだけ
>>36 業務アプリ作るには、もはやWPFの方が簡単。
手間と時間と難易度でWPFが圧勝。
>>37 まさにそういってるんだけど…
あ、もしかして逆の意味に取られたか?
> ただWPFでやると簡単なことが、
> 【Formだと】 滅茶苦茶 難易度上がって手間がかかるだけ
のつもりで書いてたんだけど、
> ただWPFでやると
> 【Formでなら】 簡単なことが
>滅茶苦茶難易度上がって手間がかかるだけ
と読まれてしまったか? 全く逆の意味になるな、そう読まれたかw
でも、formだと気合と時間かけないとできないって前段落で書いてるだろ
まぁ結局37と意見は同じようだけど、
他にも逆の意味で読む人いるといけないから一応書いとく。
WPFやった後にはもういちいちオーナードローとかしたくなくなる。
馬鹿 オーナードローしてダブルバッファ設定して ちらつかなくなった時の達成感はすばらしいだろ
業務用のデータ表示を何でやってるのか気になる datagrid使ってるのかな? アクセスより遅いし表示が汚いんで使う気にならない
DataTemplate使いこなせばListBoxだけでかなりのことできるよ
動的レイアウトが楽
45 :
デフォルトの名無しさん :2013/06/08(土) 13:20:50.02
WPF3.5で作っています。 ListBoxを右クリックした時にContextMenuを出したいです。 ・項目が無いところを右クリックした場合は「新規作成」のMenuを表示 ・項目があるところを右クリックした場合は「名前の変更」「削除」のMenuを表示 のように表示されるContextMenuを切り替えたいのですが どのように記述すれば良いのでしょうか。 現状では下記のように書いており、どこを右クリックしても 「新規作成」が表示される状態です。(そう書いているので当然ですが) <ListBox ...> <ListBox.ContextMenu> <ContextMenu> <MenuItem Header="新規作成" Click="MenuItem_CreateCategory_Click" /> </ContextMenu> </ListBox.ContextMenu> </ListBox>
46 :
デフォルトの名無しさん :2013/06/08(土) 13:23:05.53
WPF3.5で作っています。 ListBoxを右クリックした時にContextMenuを出したいです。 ・項目が無いところを右クリックした場合は「新規作成」のMenuを表示 ・項目があるところを右クリックした場合は「名前の変更」「削除」のMenuを表示 のように表示されるContextMenuを切り替えたいのですが どのように記述すれば良いのでしょうか。 現状では下記のように書いており、どこを右クリックしても 「新規作成」が表示される状態です。(そう書いているので当然ですが) <ListBox ...> <ListBox.ContextMenu> <ContextMenu> <MenuItem Header="新規作成" Click="MenuItem_CreateCategory_Click" /> </ContextMenu> </ListBox.ContextMenu> </ListBox>
ListBoxとListBoxItemに別のコンテキストメニュー設定すればいいんでないの?
DataTemplateSelector使って、 項目のない行と、項目のある行に別々のDateTemplate適用させて、 それぞれのDataTemplateの中で別々のContextMenuを設定 でいい気がする
49 :
デフォルトの名無しさん :2013/06/08(土) 16:05:39.14
>>47-48 レスをありがとうございます。
DataTemplateSelectorを使ったことが無かったので
色々とググっておりますが、使い方が分かりません。
参考になるサイトや、
もし簡単に書けるようでしたら
例を示していただけないでしょうか。
宜しくお願いいたします。
ほれ <ListBox ItemsSource="0123456789"> <ListBox.ContextMenu> <ContextMenu> <MenuItem Header="ListBox" /> </ContextMenu> </ListBox.ContextMenu> <ListBox.ItemContainerStyle> <Style TargetType="ListBoxItem"> <Setter Property="ContextMenu"> <Setter.Value> <ContextMenu> <MenuItem Header="ListBoxItem" /> </ContextMenu> </Setter.Value> </Setter> </Style> </ListBox.ItemContainerStyle> </ListBox>
52 :
デフォルトの名無しさん :2013/06/08(土) 22:42:12.36
53 :
デフォルトの名無しさん :2013/06/09(日) 16:49:02.56
このブログを参考にして、というか丸パクリして
PasswordBoxにヒント表示(何も入力されていない場合に半透明で表示する文字列)
するようにできました。
http://brentstewart.net/blog/post/2013/02/18/How-to-add-watermark-text-to-a-PasswordBox ビルドは通って実行もできるのですが、
XAMLのデザイナーの画面で
エラーが表示されています。
エラー内容は以下の通りです。
エラー一覧の説明: "Enter your password" は変換できません。
エラーの詳細: "MyPasswordBox" で FormatException がスローされました: "Enter your password" は変換できません。 詳細を非表示にするにはここをクリックしてください。
ハンドルされていない例外が発生しました
文字列が有効な Boolean 型として認識されませんでした。
場所 System.Boolean.Parse(Sring value)
場所 System.ComponentModel.BooleanConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)
例外が発生しているにも関わらずビルドが通り、実行にも問題ありませんが
このエラーの解消方法は分かりますでしょうか。
エラーそのままじゃないか? GetPlaceHolderTextはなぜbool?
>>54 String に変更したらエラー表示がなくなりました。
確かに仰る通り、気が付きませんでした。お恥ずかしい。
ありがとうございました。
WPFってVB6とStruts1.xとVBAしか知らないうちの会社のPGでも使いこなせるかな?
無理ww
.NETへの移行からか…。勝手にWPF採用決めてPGに丸投げしたら絶対詰むぜ
>>57 そうおっしゃらずに、そこを何とか!
使えないPG割り当てられて困ってるんです><
使えるPGですら難しいのに
しかし、今でも泥船に乗ってるのに、泥船から泥船に移行しなくても良いと思うんだがw
>>59 しっかり分かっている人がいるなら
分かってない人にも業務画面のような仕事は割り振れると思う。
勝手にややこしい実装されないように
WPFの大部分を端折った手順書を用意しよう。
勝手にややこしい実装ってのは、MVVMディスってんのか?
VBA(笑)
VB6いいよね というか6は色々完成度高かったな
66 :
デフォルトの名無しさん :2013/06/15(土) 07:41:29.31
すみません、誰か教えてください。 「Extended WPF Toolkit V2.0.0」をVisualStudio2012で使いたいんですが、 http://wpftoolkit.codeplex.com/documentation の通りにやってみても上手くいきません。 プロジェクト → 参照の追加 → 参照(B).. → Xceed.Wpf.Toolkit.dllを追加 これで参照設定にはちゃんと Xceed.Wpf.Toolkitが表示されています。
xamlファイルに追記 xmlns:xctk=”http://schemas.xceed.com/wpf/xaml/toolkit” csファイルにも一応追記 using Xceed.Wpf.Toolkit 例えばDateTimePickerを使う場合 <xctk:DateTimePicker /> すると次のエラー 名前 "DateTimePicker" は名前空間 "http://schemas.xceed.com/wpf/xaml/toolkit" に存在しません。 他のコントロール(CheckListBoxやIntegerUpDown等)でも同様
自動補完で出てくる xmlns:xctk=”clr−namespace:ExtendedToolkit” や xmlns:xctk=”clr−namespace:Xceed.Wpf.Toolkit;assembly=Xceed.Wpf.Toolkit” で試してみても同様 なんか基本的なところが間違っているんでしょうが、、 (連続投稿すみません。http抜いてもリンク禁止と怒られるので全角にしてあります)
69 :
66 :2013/06/15(土) 09:40:16.75
自己解決しました。 csソースからToolkitのコントロールを直接newしてやると利用できたので、 まさかとは思いながらVisualStudio2012をUpdate2からUpdate3RC2に更新したら XAMLからも普通に利用できるようになりました。 酷いよマイクロソフト… スレ汚し失礼しました。
MVVMなんて業務アプリ作るには知らない方が良い知識。
データバインドに滅法強いMVVMは非常に業務アプリ向きのアーキテクチャだろ
別にMVVMでないとデータバインドできないわけではないですし
56ですがもしかして同じ.NETでもWinFormsの方が簡単ですか? SEが半透明表示やスクロールなんかのビジュアル面も重視したいから、って WPFにしようってあまり詳しく考えずに採用しちゃったんですよ。 で、我が社はJavaとVB6(+VBA,COBOL)しかできる要員がいないので、 どうしたもんだか、と相談に来た次第です。
まずそのSEと話せよ
レイアウトの考え方はWPFのほうがJavaに近い
そのSEがWPFを熟知してるならまあ大丈夫だろうが そうでないならネット上での情報差もすごいあるし WinFormsのが無難 WinFormsならdobonさえあればなんでも作れるからな
まずVBerを抹殺してからJava要員にC#を叩きこめ
現時点でWPFで何が可能で何が困難かまったく理解してないんですが、 WPFでストアアプリ風の、タッチ操作指向のUIを作るのはやはり難しい? だったら素直にWinRTでやれよって思うかもしれないけど、 WinRTには頒布の問題や機能制限があって本質的に向いてない分野があるので
79 :
デフォルトの名無しさん :2013/06/15(土) 22:18:33.40
>>76 はぁ? って返したくなるな。
今じゃWPFの方が色んな意味で無難だろ。
これこれ自分の立場でしかものを考えられない
>>78 簡単だよー。WinRT より機能が多い分、どう作るのが良いのかは分かり辛いけど。
WPFのベクタグラフィックってatomのGPUでもちゃんと動くもんなの? なんか円表示するだけですげー重いんですけど・・・ ソフトの作りが悪いのかベクタ処理自体が重いのか判らない
84 :
デフォルトの名無しさん :2013/06/16(日) 10:00:37.60
質問させてください。 VisualStudio2012からRibbonコントロールが標準(System.Windows.Controls.Ribbon.dll)に なったということで使用してみました。 <RibbonButton>のLargeImageSourceに画像を設定して、ボタンの アイコンを表示してみたのですが、画像アイコンの表示が 汚いです。 (表示される画像のエッジ部分がガタガタして、アンチエイリアスがかかっていない?) 綺麗に表示するためにはどうしたら良いのでしょうか? 宜しくお願いします。
サイズがおかしいんじゃねーの つーか画像に勝手にアンチエイリアスなんてかけられたら嫌だろハゲ
ゆとりグラマーが多いんだよ
87 :
84 :2013/06/16(日) 12:29:52.23
>>85 回答有難うございます
<RibbonButton>のLargeImageSourceに設定する画像の
最適なサイズ、解像度について教えて頂けないでしょうか?
<Button>に画像を設定して表示する場合は、スムーズに表示されます。
<RibbonButton>でも同じように表示したいです。
WPFのTextboxなのですが、デフォルトでIMEがONになっていて 日本語入力モードになってしまいます。 IMEを無効にはできたのですが、デフォルトでIMEをOFF状態に できなくて困っています。どうしたものでしょうか?
困ってないだろ。1個1個設定したらいい。なにも問題はない
すみません。ウィルスのせいでした。
>>89 スタイルで設定すれば、Window内の全てでも、アプリ内の全てでも、
範囲はスタイルを置く場所次第だな
<Style TargetType="TextBox">
<Setter Property="InputMethod.IsInputMethodEnabled" Value="False"/>
</Style>
ありがとうございます。 どうもWPFのバグっぽいです。 XPの場合にloadedイベントでtxtbox.focus()をすると そのtextboxがIMEオンになってしまいます。 7の場合はIMEオンになりません。これはあきらかにWPFのバグですね。
94 :
デフォルトの名無しさん :2013/06/17(月) 18:55:24.08
Buttonコントロールのフォーカスを利用した処理をしようとしています。 Buttonを2つ置き、それぞれの名前を btn_a, btn_b とします。 2つのボタンには LostFocus() イベント発生時に処理をするように btn_a_LostFocus() 関数と btn_b_LostFocus() 関数を設定します。 ここで、btn_a, btn_b は、 ・ボタンからフォーカスが外れた時に処理をしたい ・ただし、btn_a ×N回 と btn_b ×M回 を交互に押している場合には 処理は実行しない としたいです。 btn_a, btn_b を、↑ボタン、↓ボタンとすると、↑と↓をポチポチ押している時は 処理はせず、別のコントロールにFocusが移った時に処理をしたい、という感じです。 以下のように書きましたが、if文の中に入ってしまい 希望の動作となりませんでしたが、どのように書けば良いのでしょうか。 private void btn_a_LostFocus(object sender, RoutedEventArgs e) { if (!btn_b.IsFocused) { // 処理(btn_aを押してからbtn_bを押すと、ここに入ってしまう) } } 宜しくお願いします。
いまいち何がしたいのか文章理解できなかった
AでもBでもないところにフォーカスが移ったら処理したいんだろ 生き写しのルール文章みたいだ
97 :
94 :2013/06/17(月) 20:02:29.45
>>95 確かに分かりにくい文章でした。すみません。
>>96 はい。AでもBでもないところにフォーカスが移ったら処理したいです。
98 :
94 :2013/06/17(月) 20:12:13.30
条件に「キーボードのフォーカス」も追加したら、 希望の動作になりました。 IsFocused はなくても十分なのかもしれませんが、 これから検証します。お騒がせしました。 private void btn_a_LostFocus(object sender, RoutedEventArgs e) { if (!( btn_b.IsFocused || btn_b.IsKeyboardFocused )) { // 処理 } } private void btn_b_LostFocus(object sender, RoutedEventArgs e) { if (!( btn_a.IsFocused || btn_a.IsKeyboardFocused )) { // 処理 } }
なぜか知らないがクソアプリだと分かってしまったわ
読みたくねーコードだな
101 :
98 :2013/06/17(月) 21:14:24.93
>>94 Aボタン・Bボタンの上から
マウス外すつもりがなくても外れちゃった、
なんてことは毎日百回単位で発生しそうだから
(普通は単純に無視されて何も起きないから気づかないだけ)
普通のアプリとかだとそれ、操作性最悪になりそうだけどな。
ユーザーが意図しない処理実行が多発しそうだ。
操作にゲーム性を求めてるとか、
実行したい処理が間違って実行しても問題ない処理とか
そういう場合は例外だけど。
103 :
デフォルトの名無しさん :2013/06/19(水) 00:29:11.30
WPFのプロジェクト内にhtmlファイルを置いて それを実行したいのですが、どうすれば良いでしょうか。 プロジェクトの構成: ProjectName +-- help ヘルプフォルダ +--- help.html ヘルプファイル 呼び出し: Process.Start("help\\help.html"); 例外、ファイルが見つかりません。となります。
パス通ってないフォルダなら、フルパス名で指定しないと。
help ならexe直下に普通に置いておいても良いような…
そもそもWPFの話題じゃない
Process.Startって、関連付けされてるのを勝手に起動してくれるのか。 それは知らんかった。
>>103 htmlが実行ファイルのあるフォルダ以下にコピーされてないから
WPFの話をしよう
じゃあWPFからchmファイルを開く場合はどう書くの? ほら、WPFの話だよ。
死ね
WPFからchmファイルを表示する方法って質問しちゃダメなの? 俺も知りたいんだが。。。
ため息しか出ないな 面白いと思ってんのか糞厨房
115 :
133 :2013/06/20(木) 20:44:04.64
あ、できたから良いや。
特にやり方書かなくても良いよね。
>>114 ため息ってどういう時に出るのか知ってる?
バカなんだなぁ。頑張ってね。
116 :
115 :2013/06/20(木) 20:44:38.34
未来人になっちゃったw おっちょこちょいだなぁ。
>>116 2ch初心者なんだろうけど
その都度のレス番じゃなく最初のレス番を入れたほうがいいよ
最近どこかのスレでも似たようなことしてる人いたなあ
クルクルパーは饒舌だね
>>117 名前にどのレス番を入れるのかは合によりけりでしょう。
あなたの考える「人の使い方」には合致しないのかもしれないけれどね。
ちなみに歴は12年くらいかなぁ。
中学生の頃からだが、もうそんなに経つのか。
あ、玄人の玄の字が消えている。 今日は調子悪い日のようだ。ミスが多い。
本当は40過ぎのオッサンのくせに何言ってんだ
アホほど自分を盛るよね
123 :
デフォルトの名無しさん :2013/06/22(土) 17:20:48.65
スプラッシュスクリーンの画像を ローカライズすることって可能? 可能なら方法を教えてほしい。 WPFの場合、ソリューションスクリーンの画像ファイルの プロパティの内、「ビルドアクション」を「SplashScreen」に設定する ことしかできないから、ローカライズは無理なのかなぁ。
Mainを自分で書けば制御はできる サテライトアセンブリに入れれるのかは知らない
>>124 ありがとう。
>Mainを自分で書けば制御はできる
これを解説しているサイトとか知らない?
127 :
123 :2013/06/22(土) 20:07:02.47
>>126 WPFでもMainって書けたのか、知らなかった。
またひとつ勉強になりました。ありがとうございます。
>>124 意図を理解できておらず申し訳ありませんでした。
128 :
デフォルトの名無しさん :2013/06/23(日) 00:06:32.97
System.Windows.Markup.XamlWriter って4.5から非推奨になったん? 以前は.NET Framework Client Profileにあったのにさ
質問です TreeViewで現在表示されている(ただし選択はされていない)TreeViewItemを取得するにはどうしたらいいでしょう? スクロール位置(VerticalOffset)とTreeViewItemの高さから計算すればいいかなと思いましたが、 もっと簡単な方法があればご教示ください TreeViewItemのIsVisibleは見た目上表示されていないアイテムも含めTrueになっていて使えませんでした
無いよ 裏技的にはあるけど使い物にならないと思う
上の階層から順にヘッダーの領域を求めて表示されてるか計算するだけのような
>>128 そもそも4.5はClient Profileが廃止されてるはずだが
133 :
129 :2013/06/24(月) 23:13:13.82
ありがとうございました 自力でがんばります
フレームワーク4.5だとオブジェクトブラウザで見ると Markupの下には System.Windows.Markup.ValueSerializerAttribute しか見当たらないんだ。なんか参照追加設定要るん?
>>134 PresentationFramework.dll
StackPanelの要素(ボタン)<=>List<String> みたいなバインドってやる方法なんか無い? 調べてみたけど全然ヒットせん
なんか無い?って質問なら ボタンにそれぞれDataContext設定すれば行けるよ でもそういうことが聞きたいんではないんでしょ もう少し正確に頼むわ
意味がよく分からんけどItemsControl使えよ
139 :
136 :2013/06/29(土) 14:10:42.35
>>137 すまん大雑把すぎた
今いわゆるMVVMモデルに出来るだけ忠実な感じにしようと作ってるんだが、
StackPanelの上に1〜20個くらいの(モデルの内部状態に依存した)ボタンを
表示させたいんだ
Children.Addすりゃ出来るっちゃ出来るが、
これデータバインディングで出来ないのかな、と色々考えて調べたけど
俺のググリ力が足りないのか見つからんかった
という話なんだ
まで書いて更新したら
>>138 がエスパー力発揮してたんだけど、
View(ItemsControl.ItemsSource) <=> ViewModel(List<Button>) <= Model(List<String>)
でイケるのか…?
微妙に正道ではないと思う まずListBoxを作って、DataContextをContentにバインドしたButtonを持つDataTemplateをListBoxに設定して、 それからList<string>をListBox.ItemsSourceにバインド
RenderTargetBitmapを他スレッドからそうさする方法はないですか?
1ヶ月悩むより他のアプローチを試そうとか考えない?
144 :
136 :2013/06/29(土) 15:03:29.48
>>141 おお、ありがとう
このままコピペったら使えるかと思いきや例外吐いて止まったけど、
こういう要領でやればいいのか
>>142 Freezeするか、Dispatcher.Invoke等で該当スレッドで操作する。
WPFでVBを使ってるバカっているの?
居ないけど突然なんだ?
発作だろ そっとしとけ
先生!F#でWPFはおやつに入りますか?
とかけまして、
そもそもWPFが使われていない。
WPF(でVB)?を使ってるバカっているの\?
VB.netでWPF使えるよね?ね?
使えてもVB厨に使う能力は無い
>>154 コピペだけでプログラミングできるという特殊な能力があるだろ
コピペしようにも、コピー元のサンプルが、 VBほとんどなくてC#がほとんどだけどねw まぁしかし、どのみちWPFなら VBでもC#でも、XAMLの方が重要になるけど
WPFの場合は、プログラミング言語としてVBやC#を使ってる部分が少ないから、 VBプログラマでも簡単にC#に移行できてるよ。 セミコロンで行を終わらせることと、{ }で括ることと、forループの回し方だけ教えとけば、 VBプログラマででもWPF (C#)プログラマに変身できる。
158 :
デフォルトの名無しさん :2013/07/07(日) 21:05:24.92
っつーかさ そもそもC#自体特に難しいことないんだけどな、C++/CLIなんか触るとやっぱC/C++は何倍も難解だと感じるし C#は標準ライブラリが貧弱すぎて、外部ライブラリに頼らざる得なくて、そうなると結局C/C++が必要になってUnsafeやラッパー書かざるを得なくなって、そうするとC#のわかり易さが消えてなくなる
そ、そうか
ライブラリたくさんあるじゃん
VBしかできない奴にXAMLは無理。
プロパティ量産するMVVMでVB使うのは単なる苦行
VBにも自動実装プロパティあるぞw
MVVMで自動実装プロパティなんか使ってどうすんだよ
OneWayToSourceかもしれねーだろうが
コメントに「このプロパティはOneWayToSource専用です。」とか書くの? アホらし。
で、おまいらはどんなモノを作ってんだ? 俺に見せてみろよ。口だけのやつじゃないだろうなw
入門したてなので僕も見たいです 他人のソース
お前がまず晒せよw まず出させて安全なとこから攻撃しようとすんなよw
俺が作ってるわけじゃないし、 具体的な名を出すつもりもないが・・・ この汚ねぇDataGridはどう見てもWPFです。 ありがとうございました。 ってな感じの製品は割とよく見かけるな。 以前WinFormsで作られてたソフトが、 0からリプレースされると同時にWPFへ移行ってケースが多いようだ。
>>164 自動実装プロパティの変更時にPropertyChangedを上げるProxyで包めばいい
Castle Dynamic Proxy使えば簡単に作れるよ
出来る出来ないじゃなくて向いてるかどうかなんだけどな
Castle Dynamic Proxyと自動実装プロパティの組み合わせは悪くないな。 俺は自前の静的コード生成でやってるが、 やってることはCastle Dynamic Proxyとあまり変わらない。
すいません。VS2012Expressをインストールして、 WPFアプリケーションのプロジェクトを作成して、 最初からあるgridの上にpaintを乗せて、 そのpaintのmouse_moveイベントを作ったんですが、 mouse_moveの処理が呼び出されません。どうなってますか。 ちなみにgridのmouse_moveを作ったら呼び出されました。
割とマジでPaintって何よ そんなクラスねーぞ
すいません。 paintでなくImageでした。 Canvasでやってもmouse_moveがきません。
Imageのサイズどうなってる
下のようになってます。ウィンドウの左上にImageを配置してます。間違ってますでしょうか。。 <Image HorizontalAlignment="Left" Height="250" VerticalAlignment="Top" Width="300" MouseMove="Image_MouseMove_1" Margin="0,19,0,0"/> </Grid>
Imageは画像が設定されている状態で画像の上じゃないとMouseMoveが飛んできません
WPFって背景色透明だとイベント来なくなかったっけ?
なるほど。自前で何か描画しておいたらmouse_moveがくるようになるのかな。 サンクス
>>180 nullはダメでTransparentはOKじゃねえの
paintに自前で動的に図形描画するにはどうしたらいいですか
DrawingContext
185 :
デフォルトの名無しさん :2013/07/13(土) 07:19:22.83
TreeViewをバインドして使っているんですが、選択したアイテムをTreeViewItemのBringIntoViewメソッドで表示しようと思ったんだが 肝心のTreeViewItemを補足できなくて困っています SelectedItemを参照しても、TreeViewItemじゃなくてバインドしたクラスが返ってきます この制御自体はVMでもコードビハインドでも構いませんが、「選択したアイテムを表示させる」にはどうしたらいいですか?
StackPanel<=>List<...>のデータバインドをする方法はないでしょうか…… 今はやむなくStackPanelのChildrenにAdd(new TextBlock())みたいな形で 強引にやってるのですが、 コードビハイドに色々とコード書くと柔軟性が損なわれるのでなんとか XAML側で定義した物にデータ流しこむだけで済ませたいのです ListView/ListBox/DataGridだと要件を満たせない感じなので、 どなたかやり方に心当たりある方は教えてくれると助かります
ItemsControl
>>185 ItemContainerGenerator使え
いま外だからやり方は自分でググれ
189 :
デフォルトの名無しさん :2013/07/13(土) 11:56:23.96
>>188 なるほど
var item = treeView.ItemContainerGenerator.ContainerFromItem(treeView.SelectedItem) as TreeViewItem;
で行けるんだ
ありがとうございました
なぜWPFはこれほどまでに直感的ではないのか
193 :
デフォルトの名無しさん :2013/07/13(土) 12:16:21.50
>>190 そのページの「TreeViewのノードを展開するには、なんとかしてTreeViewItemを取得しなければならない。」ってのは
「IsExpanded」をバインドすれば簡単にできるんだけどね
194 :
デフォルトの名無しさん :2013/07/13(土) 12:48:26.30
195 :
デフォルトの名無しさん :2013/07/13(土) 14:56:18.35
'
7/13(土) 10時 開演
●◆じゃあの夏祭り◆●
160:カミカゼ[]
2013/07/13(土) 01:22:08.42 ID:Onj7i2q50
ようおまいらwwww
眠いなあwwwおまいら睡眠たりてっか?www
なんか今年の夏は、お天道さまが気合はいってるからなあwww
夏バテに気をつけて体調管理は万全にしとけよwww
おう、そうだwww
明日の22時あたりにおもしろ情報持って遊びに来るからよろしくなwwww
じゃあのwww
--- 以下スレ情報 ---
高岡さんがフジ韓流ゴリ押し批判したら干されたのでウジテレビ凸
http://hayabusa.2ch.net/test/read.cgi/news4vip/1373622723/
196 :
デフォルトの名無しさん :2013/07/13(土) 15:16:14.73
190のソースを手直ししたら一応動きました TreeViewItem FindContainer(ItemsControl parent, object childItem) { var container = parent.ItemContainerGenerator.ContainerFromItem(childItem); if (container != null) { // parentの子の中にContainerが見つかった return container as TreeViewItem; } // parentの子を親として再帰検索 foreach (var item in parent.Items) { var child = parent.ItemContainerGenerator.ContainerFromItem(item) as ItemsControl; if (child != null && child.Items.Count > 0) { var result = FindContainer(child, childItem); if (result != null) { return result; } } } return null; } private void MyTreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e) { var item = FindContainer(MyTreeView, e.NewValue); if (item != null)item.BringIntoView(); }
そりゃ動くでしょう
CanvasのBackgroundで色を設定したらmouse_moveのeventが実行されるようになりましたありがとうございました。 しかし透明でもmouse_move来る使用の方がいいんじゃないのかこれなんでこうしてるんだろうか。。
199 :
デフォルトの名無しさん :2013/07/13(土) 22:15:24.30
>>192 XAMLが直感的じゃないのは直接的な問題じゃないんだな。
でもそれは、XAMLを直接編集する必要がない出来の良いInterface Builderがあればの話。
現実はVSもBlendも糞みたいなBuilderで、WinFormsが今でも支持されてるのはBuilderが優秀だからだろ。
実際GUI作り込むのはDropshadowやアルファブレンディングを除けばWinFormsのが楽。
Javaがデスクトップで不人気で鯖サイドでしか使われないのはJavaFX含めてInterface Builderが糞だから
XcodeはなんだかんだいってInterface Builderが優秀ってか他と比べてかなりマシ
XcodeのIBがマシとか精神障害を疑われるレベルの戯言
Xcodeとかあり得ない 宗教怖い
Javaがクライアントで使われないのはライブラリの品質の低さと WindowsやOfficeにべったり依存した泥臭い要件に対応するのが困難なのが原因だろ
>>192 WPFというかXAMLにどうしても筋が悪い技術の臭いを感じる一番の理由は
文字列リテラルへの過剰な依存だと思う。
インテリセンスも効かないし、せめてキーとする文字列に識別子を割り当てられるようには
できなかったのか
>>202 ライブラリの品質については比較したことないから言及しないけど、量については.NETよりも豊富だろ
C/C++のライブラリの移植数はJavaの方が豊富だし、Javaと.NET両方に移植されてる場合でも完成度はJavaの方が歴史あるぶん高いし。
.NETの弱さって商用除いたライブラリの少なさと完成度だし
>>203 インテリセンス効かないの本当に致命的だよね、VS使うメリットがなくなる
<t とか打った時点で<TextBox> やら <TextBlock> やら候補が表示されるし、 候補から選んだら <TextBlock> </TextBlock>と閉じタグまでセットで入力してくれるけど これってインテリセンスじゃないの?
これ将来性あるの? windowsフォームだけでいいんじゃねえの 食い扶持のなくなったmicrosoft技術者が 飯を食ってくために無理やり作り出したのがこれとかwindows8じゃねえの メーカー製PCのバンドルソフトみたいなもんで
仰るとおりだよ
何を今更悟ったように再確認してんの?ってレベル
じゃあなんでwpfの勉強してんの
してないよ? どういった経緯でそんな妄想を抱くに至ったの?
じゃあなんでスレ見てるの
もちろん馬鹿にするためにだよ
暇人や名 まあ頑張れ
Forms派がWPFを叩くのは分からんでもないが、Xcodeの子は何がやりたいんだろうか
仲間に入れて欲しいんだろ
Canvasの上に動的に描画したEllipseの、 MouseDownの処理を実装したいんですが、 どうしたらいいですか
var ellipse = new Ellipse(); ellipse.MouseDown += ellipse_MouseDown; Canvas.SetLeft(ellipse, 100); canvas.Children.Add(ellipse);
描画って言ってる時点でダメだと思うの
イメージのRectangleに対応したイベントなんて自作するに決まってんだろ馬鹿なのか ゲームだけじゃなく、デザインに拘ったUI作るときも、イベントが存在しないんだから自分で実装する他ないだろ
なんでゲーム前提なの
これがゲーム脳か 普通のアプリにはゲームループとかないからイベントドリブンだよ?
Canvas上に複数個のEllipseを配置した後で、 ボタンクリック時に、Canvas上の全てのEllipseのWidth,Heightを取得したいんですが、 どうしたらいいですか
VisualTreeHelper ActualWidth/Height
なんや単純にこれでできるやないか for (int i = 0; i < Canvas.Children.Count; i++) { double width = ((Ellipse)Canvas.Children[i]).Width; }
gridの上に配置したCanvasに動的にEllipseを Canvas.Child.Add(elps); してるんですが、サイズの大きいEllipseだと Canvasからはみ出して表示されてしまいます。 Canvas内にしかEllipseが描画されないようにするにはどうしたらいいですか。 あとCanvasに黒い外枠を付けるにはどうしたらいいですか
ClipToBounds Border
おお、できました! ありがとうございました
なんか全くViewModelにバインドとかしてなくて XAMLとそのコードビハインドだけでほとんど占めてそうな フォームチックなやりとりだな
VS2013でもWPFからBlend扱えないらしいな M$ちゃんWPFとBlendを一体どうしたいん?? そもそも何故VSとBlendを分けたのかも意味不明で、Blend消えた今も統合しないままなのも謎過ぎるんだが 現状、リッチ(死語)なUI作る労力や効率がWPFもWinFormsも変わらない、もしくはドキュメントやQ&Aが豊富なWinFormsの方が易しいんだがwww
WPFはこのままフェードアウトしていくだろうね MS信者以外の開発者は誰も使おうとしないし 「これからはWPF!」ってMSが言い始めて何年経つよ? もういい加減だまされてるって気付けよ
JUNKUDOにWPFの本を探しに行ったらエッセンシャルWPFという本1冊して置いてなかった amazonでWPFって入れたら中古本からしか購入できないのばかりwこりゃ将来性ないわw
Ellipseに、 elps.MouseRightButtonDown += elps_MouseRightButtonDown; して、右マウスダウンで処理が実行されるようにしたんですが、 elps.StrokeThickness = 1; にしてるので、マウスの位置を合わせるのが難しいです。 描画されている線の太さよりも、マウスで選択できる領域(太さ)を大きくしたいんですが どうしたらいいですか
>>233 まあWinFormは大本のMSが切り捨ててるから将来性はもっと皆無なんだがな…
>>233 その1冊だけでいいんだよ。
後はmsdnのドキュメントが充実してるからそっちをちゃんと読んでればいい。
>>234 当たり判定用にもう一個、線が太くて透明なEllipseを置くとか
もうさ、フロントエンドであるビューはXAML捨ててHTML5+CSS3でいいんじゃねーの? RazorだとPHPみたいに密結合しちゃうし、<Script>で外部ライブラリ読み込めばいいんじゃね? そもそもXAML使えるデザイナーなんて、お目に掛かったことがないんだがw 俺はデザインもプログラムも両方できるけど、こんな人間は日本では少数だろ
239 :
デフォルトの名無しさん :2013/07/17(水) 02:52:23.33
いやむしろWebFormsの実装がWPFに置き換わるべき
ストアアプリがイマイチ盛り上がらないのもXAMLのせいだよな
XAMLってすごく見にくいよね
ストアアプリが盛り上がらないのは PC向けならストア専用にするメリットがなく WPは奇特な人間以外買わないからだろう
ストアアプリはHTML5+JSでも書ける ストアアプリはWPでは動かない
世間に存在するWindowsPCの94%で動かないアプリを誰が作るねんという話だわ 従来通りかWebアプリケーションにするに決まってんだろ 分かったらさっさとWin8を0円で売れ
乞食・・・
0円でも要らないw
ピクチャーパスワードだけ下さい
Win8は軽いしキャンペーン中は3000円で買えたから Mac上の仮想マシンのゲストOSとしては最高
赤坂レオンのWPFプログラミング入門が届いたがXAMLの記述がほとんどなしw きっと天才プログラマにはXAMLが流行らないことが分かっていたんだなw
誰それ? 参院選立候補者?
全く存在知らない本だけど、金をドブに捨てたみたいだなw
WPFもXNAと同じ運命をたどるのか
Appleのようにドラスティックに切り捨てればいいのに、M$ちゃんそれに気づいたからOSでは切り捨て始めたんでしょ? WinFormsとWebFormsを切り捨ててWin/WP/ASPすべてWPFに統一すべきだよ
254 :
デフォルトの名無しさん :2013/07/18(木) 10:06:26.92
赤坂の本は買ってはいけない
255 :
忍法帖【Lv=2,xxxP】(1+0:5) :2013/07/18(木) 10:12:54.28
あ
WPFやVSの本はこれから出せないだろうね 年一でOSが変わってVSもおそらく年一で出る 半年でpreview出るから 賞味期限が異常に短い本になる
ベストセラーは狙えないが需要があることには変わりないじゃん?
ここ1~2日のレスのどこから需要を見出したのか
赤坂のwindowsゲームプログラミングは良かった
二年毎でも毎度改版して出してる本はあるし それが一年毎になったところでペースが変わるとも思えんが
261 :
デフォルトの名無しさん :2013/07/19(金) 12:01:27.15
そうやね Windows7 買ったの 3年目やったし
WPFどころか.NET自体将来性あんの?
どうだろう。VB6すらWin8.1でサポートされるらしいし。
VB6の件は開発できるってわけじゃないしな
C#=.NETだろ?だったらもうC#駆逐は無理だろ XamarinがあるからC#これからもっと伸びるぞ っつーかもうWindowsプラットフォームってビジネスとしては大手メーカーが握ってる官公庁以外で仕事なんてねーぞwww
現実の世の中は未だにCOBOLで金の計算してFORTRANで天気の計算してるんですよ
そんなのとてつもなくニッチな例をあげてドヤ顔とかレトリック以外のなにものでもないだろ馬鹿
ニッチとかお前の世界がどれだけ狭いか知れるから他の人には黙ってような Winプログラマーってこんなんばっかですか?
んで?
>>268 の世界はどれだけ広いんですかー?
おたくが「一部」かかわったものが一体なにでどれだけ有名なの?w
残念ながらこんなんばっかですよ 馬鹿が染らない内に立ち去られることをお勧めしますね
現実の世の中は未だにCOBOLで金の計算してFORTRANで天気の計算してるけど それで食ってけてる人間はほんの一握りということだな 誤差レベルの話だよ
中心座標と半径と開始角度と終了角度を与えられて、 PathとPathFigureとPathGeometryとArgSegmentを使って 円弧をcanvasにAddする処理を作りました。 んで、このcanvas上のpathから逆に円弧の中心座標と開始角度と終了角度を取得して、 パラメータを変更して円弧を再描画をしたいんですが、どうしたらいいでしょうか。 このPathを使った方法だと開始点、終了点、半径、などの情報しか得られないので、 これらの情報から計算するしかないのでしょうか。 依存プロパティとかデータバインドとか継承とか使ってうまいこと中心座標を円弧に持たせて getできるようにできないでしょうか よろしくお願いします。
WPFがどうとかより 普通にクラス設計の話じゃね?
>中心座標と半径と開始角度と終了角度を与えられて、 すでにそれらの情報を持ってるのになんで再計算するんだよ
いや、ダイアログ上のエディットボックスの入力を使って、 円弧を作ってんです。 ダイアログを閉じたらそれらの情報は失われます。
もしかしてCADなんかも表示されてるオブジェクトから 座標計算してると思ってる?
そもそも計算値の生存期間までダイアログと一致させる必要ねえだろ どっかに退避させとけ そのくらい頭使えYO
中心座標を格納するメンバ変数もないし、 canvas.Children.Add(path); したあと、再度このpathにアクセスして ダイアログに中心座標を表示したいんですが、どうしたものかと。。
ダイアログに格納先渡しとけよ
いくらなんでも頭固すぎるぞ
退避させるのはいいんですが、 その後このpathからどうやってその退避させたデータに アクセスさせたらいいのかと。。
円弧は動的にいくつでも作れるので、 静的に一つだけ存在しているというわけではないんです。 念のため。
勉強用のドローツールのサンプルコードどこかにあったけど場所を忘れた
>>282 listbox当たりから勉強しなおしたらいい
Path作ったときにDictionaryにパラメータ入れとけばいいだろ Pathが何個あろうが引ける
Shape派生させて一通り依存関係プロパティで公開して 後はバインディングで ていうか楕円は駄目なん?
分からない人がなぜ分からないのか分からないという典型的な例 君達は教える側に向いてないねw
知ってるけど ここはアルゴリズムや設計思想のスレじゃない
コレクションとか言うのを使って pathと中心座標のデータを保存しといたらいいのかな。 これだと2重管理になるから円弧を削除するときが面倒そうですが。。
2重? どこが?
コレクションとかいうのって言うくらいだからプログラムのプの横線描き始めたくらいなんだろ
EllipseとかLineだったらこんな面倒なことにならないのになあ。。
別に継承して自分でプロパティ持たせてもいいんだぜ そこまで知ってるのか知らんが
>>294 Shapeを継承するんです?
それをどう実装したらcanvas.Children.Add()できるのかがわからない
無謀だろ
珍しくスレに5人ぐらい人がいる気がする… IDでないからなあ
どう実装したらって言われても 普通にAddするだけじゃん RectangleやらEllipseやらと変わらん
ちょっとソースをアップして頂けませんか そいつをnewしてcanvas.Children.Addしたらcanvasに円弧が描画される。 GetCenterPosとかしたら中心位置が得られて、 SetCenterPosしたらその点を中心に描画されるような
やめとけ 時間の無駄
ちょっとと言いつつ全てを要求 格好いい 中心位置だのなんだのはコントロールが持ってるもんじゃなくてデータとしてデータオブジェクトが持ってるもんだ だからコントロールに聞きに行くことはない
Document-Viewアーキテクチャを知らないからこうなる
ひっそりソース書いてたけど アップしてくださいませんかというレス見てやめた
めんどくさいのでLineで作ってみた まあ動いてるよ 動作としては 追加ボタンを押すとダイアログが出てくる 数値を入れてOKを押すとcanvasに線が出てくる 線を左クリックするとまたダイアログが出てきて数値変更後OKを押すと更新される 誰かさんと違うのはLineDataと言うクラスを作って そこに座標が入ってる まじめにMVVMやるのはめんどくさかったのでLineのTagにLineDataぶっこんである クリックするとそれを元にダイアログ開く(Datacontextに突っ込んでるだけ) もし円弧でやるならArcDataに入力値を入れると ArgSegment向けの値を出すプロパティを実装する 円弧を画面に出すときはそれを使う もちろんGetCenterPosなんて不要
まあTagなんか使わなくても 誰かが書いてたようにDictionaryでもいい そしたら優先順位死ぬかもしれないけど
あと円弧の開始点や終了点を書き換える方法についてなんですが、現状だと (PathFigures)((PathGeometry)path.Data).Figures[0]).Segments[0]. 〜 見たいな感じになってて凄く扱いづらいんですが、 line.X1 = 100; みたいな感じで扱いやすくできないんでしょうか。 円弧だけやたら難しくないですか。
てか、そんなお絵かきとか、これまでWPFの開発で必要一度もないし、 今後10年使ってても多分一切使わない世界だなw
WPFってお絵かきのためのフレームワークだと思ってた
思ってていいぜ
>>306 無いから必要ならクラスでもメソッドでも好きな物作れ
作りたくないならプログラム自体やめましょう
作る気はあるんですが、 canvas.Children.Add() 出来る形で自作の円弧クラスをどう実装したらいいのかがわからない
やってみてもいないのが丸分かりだあ 単にPath継承したクラスのインスタンス作成してAddしてみてもいないですね
コンソールアプリからやり直すべき
取り敢えず描画コマンドで画面に絵を描いた後に、 この絵を動かすのはどうやるんだろう? ってなってた中学生時代の自分を思い出す。
どうやらWPF以前の問題に躓いてるようだぬ
>>312 Pathはシール型だから継承できないです。
わかってないのはあなたじゃないですかw
まだやってるのけ? ユーザコントロールでもなんでも突っ込めばわかるだろ
間違てた まだやってるのけ? ユーザコントロールでもなんでも作ったものを突っ込めばわかるだろ
できたわ。 どうやってやったか教えてやらね。 役に立たない2chのクズ共がwざまあw
なんで悪態ついてるのか知らないけど 君のレベルは多分他の連中の中で群を抜いて低いと思うよ 最初の段階のレスの意味すら理解できてないし
そらC#勉強しだして数日なんだからこんなもんだろ 俺はこの1日で成長したわけだがここで煽ってた連中は煽って何か成長したのか? 時間とエネルギーを無駄にしただけじゃないのかw 成長した俺様の勝ちw時間とエネルギーを無駄にしたお前らの負けw残念w
幼稚園児に成長したって言われてもそうですかとしか言いようがない もう来なくてもいいよ
323 :
デフォルトの名無しさん :2013/07/20(土) 19:06:16.79
>>321 ここに書き込んだから成長した訳じゃないんだろ
お前も時間とエネルギーを無駄にしただけってわけ
エネルギー保存の法則
役に立たない2chのクズ共がw
TextBlockで表示した文字が滲んでしまいます。 滲まずに表示させるにはどうすればよいでしょうか。
かつてのWPF最大の欠陥です WPFがまともに使い物になるのはWPF4からだと考えてください .NET4以降にアップデートしましょう
>>327 .NET Framework は4.5がインストールされてるのですが、WPFのバージョンが3のようです。
どうやれば4以降にできるのでしょうか。
環境はWin8 pro/VS2012 Proです。
ならWPF4.5で動いてるよ UseLayoutRoundingをTrueに
>>329 色々やってみたのですが変わりません。
<TextBlock x:Name="infoText" TextWrapping="Wrap" LineStackingStrategy="BlockLineHeight"/>
↓
<TextBlock x:Name="infoText" TextWrapping="Wrap" LineStackingStrategy="BlockLineHeight" UseLayoutRounding="True"/>
でいいんですよね? False もやってみたのですが、変わりませんでした。
OSのバージョンは?
>>331 この板、ID出ないのか。
Win8 pro/VS2012 Proです。
SnapsToDevicePixelsじゃねえの
335 :
デフォルトの名無しさん :2013/07/21(日) 16:10:49.23
プロジェクトのプロバティー開いて「対象のフレームワーク」を.net4以上に変えたらどうなるかな? 勿論バックアップしてから弄ったほうがいい
336 :
326 :2013/07/21(日) 16:41:13.80
SnapsToDevicePixelsもやってみましたが変わらず。 対象のフレームワークは .NET Framework4 Client Profile でした。 念の為に.NET Framework4/.NET Framework4.5に変えてみましたが、ビルドできなくなった。(名前 'Properties' は現在のコンテキスト内に存在しません。) 自作のアプリじゃない(GitHubでソースが公開されている)ので、もうこういうものだと諦めて使います。 いろいろアドバイスありがとうございました。
役に立たないクズばかり
338 :
デフォルトの名無しさん :2013/07/21(日) 17:34:17.57
お前が筆頭だがな
PCのDPIが普通じゃなくなってたりして
テキストがにじむのならクリアタイプあたりがあやしい気が
座標が整数じゃないからかも
>>341 それを整数にするのがUseLayoutRoundingじゃないのか?
ただこれ、ルートで使えって書いてあるが
>ルート要素の UseLayoutRounding を true に設定する必要があります。
>(中略)親の座標がピクセル境界にない場合、子の座標はピクセル境界になりません
343 :
326 :2013/07/22(月) 09:24:18.53
>>342 ダメもとで一番上位のフォームのWindowにUseLayoutRounding=True"を入れてみると文字がにじまなくなりました。
ありがとうございました。
WinRTのXAMLで質問があります ListViewのアイテムテンプレートにFrameを配置し、FrameのContentに動的生成したRichTextBlockをバインドします プロジェクトを実行しListViewを前後にスクロールすると画面外に出たアイテム内のRichTextBlockが隣り合ったアイテム内のRichTextBlockと入れ替わっていることがあります (入れ替わるアイテム内のRichTextBlockはどちらも画面外です) この現象は確認した限りではアイテムパネルが仮想化されているときになりました どうすればこの現象をなくすことができますか? やりたいことはListViewのアイテムに動的生成したRichTextBlockを配置することです
>>344 です
3行目の説明に間違いがありました
RichTextBlockが入れ替わるのは隣り合っているアイテムではありませんでした
正しくは前後にスクロールされて、画面外にでたアイテムが新しく画面内に入ってきたアイテムと入れ替わっていました
WinRTはスレチ ストアアプリにはRichTextBlockという不気味な物があるんだな
x,y,半径を持ったクラス作って、ViewModelでそれのListを扱い、 それを自動的にView側に描画するような仕組みって どうにか作れたりしないもんか View側に処理書くの嫌なんだよな
おかえりください
データバインドだけで行けそうだけど
役に立たない2chのクズ共がw
>>347 そういうのはむしろVにコード書きまくってカスタムコントロールに閉じ込めろ
無理にMVVMにするよりその方が全体としては綺麗だし再利用性も高くなる
>>351 なるほど、やっぱりカスタムコントロールでなんとかするしか
道はないのか…
ありがとう、参考になった
これは読んでおくべきっていうWPFの洋書って何かありますか
ハスラーのがもっといいよ
itemscontrolとデータバインドを使いなはれ
なんでC#ってpublic変数推奨みたいなことになってるの 10年前猫も杓子もオブジェクト指向って言ってた頃は、 変数はprivateにして関数経由で読み書きすべきと主張してたジャン この態度の変わりようはなんなんn
358 :
デフォルトの名無しさん :2013/07/27(土) 06:54:11.97
>>357 C#はプロバティ-至上主義だろ
お前は何処の星出身だよ
仮にお前がpublic変数を現場で使えと言われているなら、言っている奴が特殊だ
誰も推奨なんかしてないし
>>357 が何か誤解してるとしか思えんな
外部に公開するクラスじゃないならなんでもかんでも プロパティにする必要も無い気もする。
publicな自動実装プロパティってpublic変数と実質同じじゃないの?
利用する側のコードを変更することなく、後で自動実装でないプロパティに変更できる点が違う なんでもかんでも公開するべきではないという意味では、フィールドより少しだけマシとはいえやはり必要最小限にするべき
363 :
デフォルトの名無しさん :2013/07/27(土) 09:08:45.28
あと、private setが便利だよな
setter, getterなんか面倒くさいだけやったんや
一応WPFの話題に戻すと XAMLからデータバインドに使えるのは publicなプロパティだけだから注意な
どうせ暗黙のgetter,setter生成に依存しちゃうなら いっそpublic識別子の代わりにproperty識別子みたいなの 言語仕様に入れちゃえば良かったのにね
367 :
デフォルトの名無しさん :2013/07/27(土) 11:50:04.46
D最強
Delphi最強
369 :
デフォルトの名無しさん :2013/07/27(土) 20:40:49.60
プロバティーは外部から変更されたタイミングが簡単にわかるし 外部から読み取り専用にして内部データを保護できるとか、便利な仕組みだよな 自動実装の不満点は初期化の仕組みがないことだわ
そういう機能主義的な観点で言えば、Java信者の人がよく言うように「そんなのgetter/setterでも可能」 って話になるからなあ。 そうじゃなくて、OOの属性という概念をプログラミング言語に素直に写像したものが プロパティだと考える方が納得的だと思う。
371 :
デフォルトの名無しさん :2013/07/27(土) 20:54:00.33
>そんなのgetter/setterでも可能 そんなの言い出したらCでも可能
C言語で十分やったんや それ以降は言語製作者のオナニーやったんや
C+1 ぐらいでいいから C を完全に滅ぼせるのがほしかったな
ところが.NET4.0ではバグのせいでXAMLから privateなプロパティをバインドできてしまうという
放置すればするほど阿鼻叫喚が待ってるわけか… 修正するなら下手な救済を与えずバッサリ行って欲しいね
全部public変数で問題無かったんや
Unity3Dがpublicフィールド推奨してるせいで ますます進むpublicフィールドへの回帰
金額を表示・入力する TextBox が結構あるので、 右寄せ表示と通気用の書式を Style にまとめようと思った。 けど、StringFormat って Style で指定できなくね? Label の ContentStringFormat なら Style で指定できるのに。 なんだこれ。
ネタにマジレスは禁止です><
380 :
デフォルトの名無しさん :2013/08/02(金) 20:58:46.78
WPF leak でぐぐると山ほどでてくるけど、直す気はあるのかな? グラフィック系のハンドルだのファイルハンドルだのオブジェクトだのメモリだの だだ漏れじゃないか あとMediaElementが不定期にファイル握ったままになるのを直してほしいわぁ
実際それでWPFで作られたアプリが不安定になるわけじゃないし、 メモリリークしてたっていいんじゃないの
アプリ起動時にマウスカーソルの位置をアプリの中央に設定したいんですがどうしたらいいですか
win32api
チューチューマウス
WPFってマウスの位置設定もできないのか…
別にWPFである必要性がないような... System.Windows.Forms.Cursor.Positionって普通に使えるよね。 名前空間の仕分けが変なのは今更言っても
てかWPFに限らず 勝手にマウスカーソル移動させられちまうアプリって 俺がユーザーならそれだけで不満爆発
System.Windows.Forms.Cursor.Position それ読み取りしか使えなかったっす
PointToScreenで相対座標で設定しようとするとできなかったっす
低能だわマルチポストだわ
しかもマルチだし
役に立たない2chのクズ共がw
おそらくSystem.Drawing.PointとSystem.Window.Pointの違いに気づいてないとか
visual studio 2012みたいな外観のアプリケーションってタイトルバー含めて自分で描画してるんですかね?
vs2010expressでマウス操作でGUI部品を貼り付けて実行したら、 GUI部品のレイアウトが微妙にずれてるんですが、どうなってますか vs2012だったらこういうことはないですか
馬鹿はどんな道具を使っても無理
WPFは"論理的に"正しくレイアウトするんだ クソ細かいことを気にしていちいち微調整したがるジャップには合わない
そもそもWPFはポトペタで作るもんじゃない それじゃごく初歩的な単純な画面くらいしか作れないし WPFで作る意味もない
しかしWPF製のアプリケーションって全然増えないねw ストアアプリは別として
全く持ってその通りでワロタ…
metroはデータベースが触れるのだったら使いたいけど 今のままじゃ無理だな 妙な設計のおかげでデータベースがレスポンス寄越す前に metroが休止したりとかさんざんな状態になる
ストアアプリなんてゲームを除けばWebサービスのクライアントを作るための ものなんだからそんなもん要らん ちょっとリッチなHTML+JSにすぎない
画像ファイルをスムーズに拡大/縮小したく下のようなコードを書きました。 スライドバーを動かすとそれにあわせて拡大縮小します。 ただ一定範囲ごとにひっかかりがあります。たぶん拡大縮小の画像を 生成しているんじゃないかと思うのですが何かスムーズになる方法は ないものでしょうか?環境はVS2008です。 Class Window1 Dim img As New Image Private Sub Window1_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded Dim dec As New TiffBitmapDecoder(New Uri("c:\a4.tif"), BitmapCreateOptions.IgnoreColorProfile, BitmapCacheOption.Default) For Each frame As BitmapFrame In dec.Frames img.Source = frame Canvas1.Children.Add(img) Exit For Next Slider1.Maximum = 1000 Slider1.Value = 500 End Sub Private Sub Slider1_ValueChanged(ByVal sender As System.Object, ByVal e As System.Windows.RoutedPropertyChangedEventArgs(Of System.Double)) Handles Slider1.ValueChanged img.RenderTransform = New ScaleTransform(Slider1.Value / 1000, Slider1.Value / 1000) End Sub End Class
>>405 見てないけど引っかかるのはスクロールバーと関係ない?
>>406 スクロールバーは表示されていないので関係なさそうです。
てかデータバインド使えよ それだけで済む
BitmapCacheOption.Default のおかげか一度拡大縮小するとその大きさの部分はスムーズに 拡大縮小されます。
DrawingVisualでRenderするようにしたらスムーズになりました。 お騒がせしました。
if (control.Visibility == Visibility.Visible) { control.Visibility = Visibility.Collapsed; } else { control.Visibility = Visibility.Visible; } こうやっていちいち書くのは面倒なので一行で書けるようにしたいのですがどうすればいいですか? controlは常に同じ型とは限りません。
? と : 使えば一行。
>>412 が書いてるように三項演算子書くと一行だけど
ロジックミスを起こしやすいところなので
実際はToggleVisibility()あたりのメソッドを自作しておいた方がいいかもね
初心者はメソッドをうまく使えないので難しいかもなあ
> controlは常に同じ型とは限りません。
ここも不安要素w
Shapeクラスを継承して作った自作クラスをリストに入れておいて、 リストから順番に取り出してポリモーフィズムみたいにして順に関数を実行したい for(int i=0; i<リストの要素数; i++) { Shape myShape = (リスト)[i]; myShape.doSomething(); } この場合に doSomething関数をどうやって作ったらいいんでしょうか Shapeに関数追加とかできるんでしょうか
え? 継承ってどういうことか分かってます?
どうやってって…継承して普通にメソッド書いたらいい。ググれ wpf関係ないし言語仕様の話だ
なんか夏休みですのー この2,3日の書き込みのレベルがw
継承した関数に書いてもShape型では実行できないじゃないので
419 :
デフォルトの名無しさん :2013/08/07(水) 19:33:56.97
>>418 継承かと思ったら致命傷だったw
てか、アンタの考えているものを実現できるのは拡張メソッドというやつ
継承は継承したクラスが元のクラスの機能を使えるってものだから、逆は無理だよ
Shapeを継承したMyShapeにdoSomethingを仮想関数で作っておいて、 MyShapeを継承した自作クラスでdoSomethingを実装して、 MyShape型で関数呼び出せばいけたわ 役に立たない2chのクズ共がw
幼稚くさ
var myShape = リスト[i] as MyShape; if( myShape != null ) { myShape.doSomething(); } でいいやん
MyShapeを使わずにShapeにdoSomethingを追加して同じことをすることはできんのか 最新のテクノロジーのプログラミング言語なんだからそのくらいできんのか
まぁ、君には無理だよ いい加減消えなさい うざいから 一人で頑張ってこのスレのレベル落とさなくてもいい
425 :
デフォルトの名無しさん :2013/08/07(水) 20:55:00.05
分からないならレスしないで下さい。うざいだけです
デリゲートでも添付しとけ
猛暑だなーw もう少しまともな質問できるレベルまで勉強してから手出せばいいのに
>>423 dynamic daikuma = リスト[i];
daikuma.doSomething();
なんで拡張メソッド使わないんだよ…
拡張メソッドでオーバーライドンできますか
Ride on Time
Ownerウィンドウが移動したら子ウィンドウも連動して動くようにするにはどうしたらいいですか?
なんでWPFってGUI部品の背景白なん
あなたのお好きな色に染まります
Xamlでの Width="*" はC#だとどう書けばいいのですか?
XAMLで書けよ
440 :
デフォルトの名無しさん :2013/08/13(火) 23:00:49.87
ビジネス的にはXP対応のために4.0までで作るのがいいのかな? クライアントで4.5を仕事に使ってる人はいる?
人生いろいろビジネスもいろいろだと思いますが... Windows Formでかつパッケージソフト寄りのアプリなら、XPのシェアを考慮すれば 現状では4.0が最適解かなと思うけど、WPFだとそもそもXP対応をうたって 大丈夫なのかなという気もする。
XPなんて1年以内に絶滅するの確定なのに、XP対応で新システム作るのはアホでは
それどんなパソヲタ脳だよ
公式サポート来年の4月で切られるのなんて周知されてるだろ まだ7への更新を検討してない所なんて本当に少数の筈だが
446 :
326 :2013/08/15(木) 08:24:54.43
サポートが終わるだけで、XP自体が使えなくなるわけではない。 業務系などは100%誤動作しない事がわかっていなければ、簡単にOSを変更できない。 その為のVMとかもあるので、何かの事情があるのでなければXPを視野に入れるのも間違いではないぞ。 個人的には無駄だと思うけどなw
>>442 4.0と4.5は互換性のない変更が含まれてるけど共存しないから
4.0はなしだよ。選ぶなら3.5か4.5のどっちか。
3.5はないわ バグ放置されてるもん 4.0も放置されてるけど新しいほうがまし
>>446 ビジネス感覚のないお方。
それは考え方が普通と逆で、パッケージソフト寄りのアプリという前提条件付きであれば、
現状のXPのシェアを考えれば、XPに対応しないなどという選択肢は
特別な事情がない限りありえない。
OSのセキュリティー機能なんか気にするのは、個人ユーザーならパソヲタの一部と
企業ユーザーなら、担当者が問題発生時に責任追求されることを嫌う大企業だけ。
プログラミングWindows 第6版 上 ~C#とXAMLによるWindowsストアアプリ開発 価格: ¥ 7,350 って買いですか? XAMLやWPFに的を絞った本なのかな
451 :
326 :2013/08/15(木) 11:56:28.24
>>449 XPを除外する必要はないという意見なんだが?
>>449 よっぽどアレな職場なのか、個人向け開発しかしてないのか知らんが、
今から新しく作るのにXP対応するのはコストの無駄だろ
セキュリティ機能気にしない企業は企業というレベルに達してない
顧客の情報や内部資料が全世界に公開されるリスクを取れる企業がマトモな訳がない
XP入れたパソコンでインターネットと接続しないならまだ分かるが、
そういう環境は稀だし、そうでないならただのアホ
>>415 - XPを視野に入れるのも間違いではない
- XPに対応しないなどという選択肢は特別な事情がない限りありえない
この2つはニュアンスが真逆
>>453 多分、自分に対するレスだと思うけど、
>@- XPを視野に入れるのも間違いではない
>A- XPに対応しないなどという選択肢は特別な事情がない限りありえない
XPを対象OSにする事は、
@→対象OSにするのは間違いではない→OK
A→対象OSにしない事は特別な理由がない限りありえない→OK
@の場合は対象外にするのもOKというだけで、他は同じことだと思うんだけど・・・
要約すると、新規アプリケーションはWPFで作るなということでつね
どこをどう要約したんだw
質問! <DataGridTextColumn Header="ファイル名"> <DataGridTextColumn.Binding> <Binding Path="FileName" Converter="{StaticResource pathConverter}" ConverterParameter="C:\〜"/> </DataGridTextColumn.Binding> </DataGridTextColumn> のようにして,ConverterParameterからの相対パスを表示させている (ConverterParameterの子でなければフルパスを表示). で,ConverterParameterを可変にして,データバインディングのようなことを したいのだが,Parameterプロパティが 非Dependencyプロパティなので, ConverterParameter={Binding ...} のようなことはできなかった. どうやれば実現できますか?
MultiBinding
459 :
457 :2013/08/16(金) 17:00:13.33
あー,MultiValueなConverterを使えばできるっちゃできるのか. でもあんまり美しくはないような気もするので, 他に実現方法があったらご紹介ください.
460 :
457 :2013/08/16(金) 17:07:20.01
>>458 ありがとうございます.
やっぱ自分が気にしすぎだったのかな(逆変換があまりキレイじゃない,とか).
とりあえず当該列をReadOnlyにしてMultiBindingでやってみます.
ちょっと聞きたいんだが、 カスタムコントロール作る時ってイベントとかバンバン使っていいの? 影響範囲を封じ込めてる間はOK?
カスタムコントロールじゃなくても使っていいだろ
463 :
461 :2013/08/20(火) 21:35:41.94
>>462 割りとMVVMきちんと守って作ってるから、
コードビハインドにガッツリ書くとなんか…
464 :
デフォルトの名無しさん :2013/08/20(火) 21:43:56.48
カスタムコントロールって onxxのオーバーライドでイベント使いまくりでコードビハインドにコーディングして 寧ろDataContextは空にしないと後々問題になるでしょうが
カスタムコントロール?ユーザーコントロールじゃなくて? カスタムコントロールはテンプレートとコードを疎結合にしなきゃいけないので コードから他のコントロールを触ることは極力避ける。 まあゼロというわけにはいかないので、必要な場合は依存対象をTemplatePart属性によって明示して最小限使う。 MVVMでいうとVに閉じた話であって、MVVMで疎結合がどうとかいう話とは関係ないので混同しないように。
MVVMなんて幻想 コマンドもいらん あんなのは宗教
>>464 やっぱりそうなのか
WPFは仕事で触り始めてまだ1ヶ月だからイマイチ感覚が分からないんだ
>>465 ユーザーコントロールはModel省略の普通のMVVMみたいなノリで
いい印象あるんだが、カスタムコントロールどうなんだろうと思ってさ
というか、カスタムコントロールって他のコントロール触るって事あるのか
まだ勉強足りんっぽい
>>466 いや、色々勉強して書いてみてるが設計的には大爆発を抑制できそうだし、
Prismとか使えば割りと楽に色々出来る感じあるぞ 素人意見だが
カスタムコントロールは他のコントロールを触るもんだぞ TemplatePartに明記し、GetTemplateChildで取得する コード側のプロパティを子に反映させたいときは単純な場合バインディング(TemplateBinding)も使うが、 コマンドは普通使わないでイベントハンドラを使う コマンドだと外から呼ばれちゃうから良くないし、どうせTemplatePartにがっつり依存してるので意味ない
>>468 うーむ、やっぱりまだ良く分かってないな
出てきたキーワードからまた調べてみるわ
Thx
xbapのアプリってテキストファイルを読み込む等の処理はセキュリティ上の問題でできないんでしたっけ?
完全信頼にすればできるが XBAPなんて余計な制限がかかるだけで何のメリットもないから普通のWPFアプリでClickOnce使え
ClickOnceですか。起動時のアップデートチェックが長くてストレスが溜まると聞いていますが、検討してみます。
2つの同じ種類のコントロールを完全に同一にしたい、要するに全てのプロパティをバインディングさせたいのですが どうすればいいですか?
ClickOnceって誤動作しない? ログ取ってると、ときどき自分がClickOnceでインストールされてないって返されること有る。
476 :
デフォルトの名無しさん :2013/09/04(水) 20:03:42.37
BitmapSource をSqlSeerverCeに突っ込んで読み込みたいんですが教えてもらえませんか?
多分、こういうのはもう流行らない
7とかの平べったいボタンは個人的にはあまりすきじゃないんだよね
それを言うなら、8のボタンではないか?
microsoftの人も仕事がなくなってきてるんだろう メーカー製PCのバンドルソフトと同じ匂い
流行りかどうか知らないけど そういうボタンは画像用意しておいて背景に設定するんだよ
web2.0デザインとでも呼べばいいんだろうか そういった背景の画像はweb上のジェネレータが探せば結構ある
どう考えても画像じゃなくてグラデーションブラシを使ってるだけだと思うw
簡単なのは幅1ピクセルの画像をループして貼ってる ハイライト入れるのに画像使ったりしてる
画像よりXAMLで書いたほうが、色変えたくなったりした時に対応しやすいからいいよね
サイズの大きいビットマップファイルをキャンバスにAddすると、 キャンバスをはみだして表示されてしまうんですが、 はみだしてる部分は表示しないようにするにはどうしたらいいですか
できましたありがとうございました。
複雑なデータテンプレート作って、それの色違いのスタイルがほしい場合って同じ複雑なデータテンプレートを書かなきゃいけないのでしょうか?再利用とかできませんか?
>>491 俺もデータテンプレートの使う場所での微妙なカスタマイズ方が知りたい(´・ω・`)
テンプレート内で変えたい部分の値をリソース参照にして 使用する箇所のコントロールのリソースの値を変えたりとか。
494 :
493 :2013/09/09(月) 23:21:54.42
ListBoxの選択スタイルなんかがリソース参照になってるので そういうカスタマイズが出来るようになってる。
どういうこと?
>>491 BasedOnでオーバーライドとかそういうレベルの話ではないのかな
BasedOnとかそんなのあったなぁ
>>496 テンプレートもBaseOnってあるんだっけ?
ないよねw DataContextに持たせるか、TemplateBindingで出来る範囲で諦めるか、 あとはUserControlを使うか...
>>491 単にDataTemplateの中なら、
色をConverterかましてBindingすりゃ済む話じゃないの?
もうちょい複雑にUserControlの中の部品(Buttonとか)の色を
外から変えたいとかなら、DependencyProperty作って
それで中継させれば外からBindingしたりもできる
>>500 ストアアプリの用語ですまんが同じPageの中でListViewとGridViewをVisualStateで切り替えるとして各々の中で同じテンプレートを色違いで使うとする。
そした場合ってのはConverterをStaticResourceにしてStateChangeか何かでConverterのパラメタを書き換えたりするん?
いや、プロパティの継承とかで各々のスコープで色違いになるようConverterを定義しとくのか?
canvas.AddするだけでInvalidateもOnPaintも考えずに画像が表示されるって素敵ですね
GridSplitterで変更した高さを元に戻すにはどうしたらいいでしょうか
504 :
デフォルトの名無しさん :2013/09/10(火) 22:00:46.87
>>503 GridのRowDefinitionや中の人のHeightを弄ると治る
何を弄るのかは作りによるから実験してね
>>504 そのあたりは結構いじってみてるのですがどうにも思ったように挙動してくれませんでした
いろいろ試してみようと思います
ありがとうございました
listviewにdisplayindexがつくのはいつ頃になりますか?
ないでしょ MSはGUI技術の開発リソースをほぼHTMLに絞ってて、もうWPFは弄る気ないみたい ストアアプリもいずれHTML一本になるだろうね
オワコンってこと?
どうでもいい話だけど、WritableBitmapじゃなくてWriteableBitmapなんだねw まさかのスペルミスかと思ったらイギリス英語らしい。 こんなの米語で統一して欲しいよな。
なんでイギリス英語だとだめなの?
いや命名規則に機械的に従ったらそうなるだけだろ 余計な例外を嫌うのは共通のセンスでしょ ICloneableもそう
>>507 いやーそれはないんじゃないか。
というか勘弁してくれ…
WPFはToolkitすら放置されてるもんな あそこまで作っといて本家に取り入れられないものだらけ もう開発はしないのかもしれない
514 :
でちゅ :2013/09/11(水) 09:42:13.09
WPFの個人的メモ MediaElementのSourceに動画とか音楽ファイル突っ込んで Play()してMediaOpenedまたはMediaFailedイベントを待たずに MediaElement.Close()を呼ぶとハンドルがリークしてファイルがロックされたままになる。 と……
バグじゃん
this.mediaElement1.Source = new Uri( @"C:\hogehoge.mp3" ); this.mediaElement1.Play(); this.mediaElement1.Source = null; this.mediaElement1.Close(); これで再現するなw Source = null; はなくても同じ
そんなコーディングするなよ
もちろん普通はこんなコードは書かないが ユーザーが再生ボタン連打みたいな状況はありえるかな
>>518 それは中でステート管理して処理すべきだろw
520 :
でちゅ :2013/09/11(水) 21:14:06.16
まあ何にせよMediaElementには罠が多すぎの感が
Effectのグロウってなくなったの?
GlowEffectやDropShadowEffectで代用 最悪ピクセルシェーダを書けばなんでもできる
訂正 BlurEffect
蒸し返してすまんが
>>501 のような同じテンプレートを違う場所でパラメータを変えて使いたいような場合はどげんしたらよかと?
WindowsFormsHostにFormsのカスタムコントロールおいたら、フォーカスの挙動がちょっとおかしい。 CanFocusがfalseのままだぁ!!どうすりゃいいのさ。。。
CollectionViewSourceでXAMLでSortDiscriptionを定義した時はちゃんとソートされるんだけど、なぜかcsファイルに書いたらソートされない
TextBoxのHeightをAutoにしてAcceptsReturnをTrueにすると改行入力するたびにTextBoxの高さがどんどん増えていくけどこれやめるにはどうすればいいでしょうか? TextBoxのHeightを固定値にすれば改行入力しても高さ増えないですが、初回は高さをAutoの状態で表示させたいのです
>>527 あんたが決めない仕様をWPFに丸投げしてよきにはからえ、なんて言っても無理。
何考えてるんだろう
529 :
デフォルトの名無しさん :2013/09/14(土) 16:22:46.85
>>526 CollectionViewSource vs; だとすると、ItemsSourceにバインドするのは{Binding vs.View}となるんだが、そこは合っている?
>>527 適当なタイミングでActualHeightの値をHeightに入れとけば?
531 :
デフォルトの名無しさん :2013/09/17(火) 01:33:03.62
>>527 テストしていないけどMaxHeightで解決しないのかな?
>>527 要は最初はそのテキストを全部表示するに足る高さにしたいってこと?
最初Autoでその計算された値で固定値にすれば?
アンドロイドみたいなトーストポップアップってどうやって実装してる?
534 :
デフォルトの名無しさん :2013/09/25(水) 07:59:16.97
>>533 「ウンコした後お尻はどうやって拭いてる?」と同じ質問だな。
HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM AlwaysHibernateThumbnails ColorizationAfterglow ColorizationAfterglowBalance ColorizationBlurBalance ColorizationColor ColorizationColorBalance ColorizationGlassAttribute ColorizationGlassReflectionIntensity ColorizationOpaqueBlend Composition EnableAeroPeek EnableWindowColorization これらの値を変更して再起動することで色々設定できるみたいだね
WindowsFormHostの上にWPFのコントロールを表示したいんですが、無理ですか?
ElementHost
CanvasにImageを追加して、 Canvas.EffectにShaderEffectから派生したクラスを設定してるんだけど、 ImageのサイズがCanvasより大きい場合に、Canvasからはみ出てる部分にも エフェクトを掛けようとしているのかとても重くなる。 重くなるのを回避する方法はないだろうか?
自分でシェーダ書いてるんだったら範囲をシェーダのパラメータとして直接指定すればいいでしょ
Borderの中にでも入れといてBorderにエフェクトを指定してみるとか
544 :
デフォルトの名無しさん :2013/10/01(火) 18:31:19.49
2010なんだけど、フォームにしないと常駐も作れないぞ。 2012は少しはマシ?
そもそもの認識がおかしい WPFはWinFormsと併用するもの
初心者は使うなと言いたいんだな? 拡張にあるけどインストール方法も分からん。
WPFはCOMコンポーネントを直接乗っけられないのか? winformsかまさないとダメ?
WindowsFormsHostをかまさないとダメ どう実装しようがWPFの上にWinネイティブのウィンドウを重ねるというクソみたいな形にしかならないんで WinFormsを併用することによって失うものは特にない
WPFのセールスポイントはGUIコーティングの言語横断性にあるんだろ? FORMと共用したら意味ないんじゃないのか?
WPFのセールスポイントは高い柔軟性と表現力だろ GUIを箱庭内でフルスクラッチで再構築してるからOSの制約を受けない コントロールのウィンドウハンドルが必要になるようなことをやろうとする時点でその前提が崩れてるんだよ
フォルダ選択ダイアログを使いたい俺はユーザー失格ですね分かりましたよ。
だからWinFormsを併用しろって言ってるでしょ フォルダ選択ダイアログはWPFのウィンドウじゃなくてWindowsネイティブだろ? だからWindowsネイティブのGUIのラッパーであるWinFormsを使う。何かおかしいか? WPF内でやりたいというなら自作しろよ
初心者は使うなということですね? 分かってますよ?
ゼロから始める入門を手本にコントロールがウィンドウ一枚に 百以上あるのを2カ月で五千行ばかり書いたのに…。
モバイルブームに人取られちまって開発進まないと見た。
マウスやキーのイベントを一切受け取らない半透明のBorderがほしいんだけどどう書いたらいいの?
IsHitTestVisible="false" Opacity="0.5"
グリッド使うとコントロール配置がウィンドウに合わせてゴム みたいに伸び縮みして面白いんだけどな。 使い勝手がもうちょっと良けりゃ。
人気出なかったのはドカタが業務フォームを大量生産するのに向いてないからだよな MVVMはそういうのに向いた手法だけどそれはそれでドカタには難しすぎる 一画面を作り込むタイプのアプリにはいいんだけどその手のアプリは数が多くないし金にならない
本質的に難しいかはともかく、土方向けのとっつきやすい情報が皆無なのはたしか。
Winformって業務アプリでよく使われるけど、業務アプリって似たような画面がいっぱいあるんだよね 表示する情報が違うとかそういうレベルで しかもデータ量が大量だから、それがWPFに合わないっていうのが大きいよな ビューとモデルが一対一だから、MVVMの恩恵も受けないし
将来性への不安が使われない理由の大きな原因だと思うが Silverlightの開発チームが何の前触れもなく解散したのにはビビったわ こりゃWPFもそろそろかって思う人が出ても不思議ではないはず
SilverlightはWebの選択肢が他にいっぱいあったからじゃね?
MVVMの御題目は良かったのかもしれない ただ実装がひどすぎた 無理やり作りました的なフレームワーク staticメンバー羅列ってみるだけでゲロ吐きそう
Prismとかの補助ライブラリも無しにMVVMやろうとするからそうなる
理念通りのMVVMにはライブラリ使うか、自分でWPFの上に乗っける
フレームワークをフルスクラッチするしか道はない
とりあえずPrismでも使っておけ
>>562 むしろWPFの得意領域じゃねえのそれ
WPFだけでもややこしいのにさらにそんな妙なライブラリの使い方まで覚えなきゃならんのかw
WPF標準の書き方覚える方が面倒だろうというマジレス
標準の作り方が知らないでPrismが使えるかよw あれはソース見て自前で作るためのサンプルだ
>>545 モダンの方だがBindableBaseだけでそんなさして困って無いんだが。
まぁコードビハインド適度にあるけど別にそんぐらい構わなくね?
>>569 それは言い過ぎだわ…
DelegateCommandだけでも存在意義ある
ガリガリ実務で使うかといえばアレだが、普通に使っても困らん
複合アプリケーション云々は無視して問題ない
せめてPrismとInteractivity.dll無いとスタートラインに立てん
livetとかでもいいが
その段階を越えると意外とそういうの必要ないことに気付いてきて 素のWPFが非常によくできていることが分かってくるよ
Behaviorとか使わない人はコードビハインドで頑張ってるのか とかいう俺もbehaviorのOnDetachingがコードビハインドで明示的に削除を 書かないと働かないことを知ってからは若干嫌厭気味だが……
そのBehaviorにもBlendでポトペタする奴とVSで書ける奴とあってもう訳がわからんw
素のWPFは少なくともそこらへんの「ぼくがかんがえたさいきょうのWPF」よりは遥かに優れた仕組みを持ってる そこを正しく理解するのがまずは先
使うのに深い理解が必要だと滅びやすいので、とりあえず、でもちゃんとマトモに作れる環境が必要
もっと俺にもわかるように話せよ
Prismは触ってみたいと思うけど参考になるサイトがない WPF Prismで検索しても大した内容が出てこにゃい 英語でお勉強するしかないのか それとPrism RTのテンプレートのダウンロード数が世界で1000件ぐらい RTが終わってるのかPrismが始まってないのか
>>578 Prismとかやるなら英語必須だろ(´・ω・`)
580 :
デフォルトの名無しさん :2013/10/03(木) 21:22:10.99
テキストボックスのコンテキストメニュー、作りかけで投げ出してない? いじってるとデザイナーがハングして冷や汗だらだらになるぞ?
581 :
デフォルトの名無しさん :2013/10/03(木) 21:25:05.55
テキストボックスでコピペ出来ないとか最強だろ?
582 :
デフォルトの名無しさん :2013/10/03(木) 21:34:45.89
おまいら、よくもまあこんな中途半端なもんを自慢気に使い やがるな。 自称プロ用のガラクタかよ。
WPFに親でも殺されたのか
他に良いGUIライブラリが無いからなぁ Win32APIを直で書くのは面倒だし、MFCはもうMSですら使ってないだろうし WTLは死んでるようなものだし、今後期待できそうなのQtくらいか
クライアント系はもうこれしかないんだよ!
Qtが20年も持つとは思わなかった
WinFormは死なんよ。何度でもよみがえるさ
今後どう考えてもhtml5が主流になる
Webはそろそろ終わるよ クラウドがもうだめ
いやメトロアプリが死ぬな JavaScriptでもかけるからアプリ増えそう
>>592 ?
JavaScriptで書いてもメトロアプリはメトロアプリでは?
メトロ死んで普通のHTMLアプリが増えるってことだろうか
TabControlの内側の領域(矩形?)の大きさを求めたいのですが どのような処理をすると取得できるのでしょうか
596 :
デフォルトの名無しさん :2013/10/05(土) 06:43:38.65
>>595 英語で書かれたオリジナルのMSDNドキュメントを読めば解る。
ウィンドウを最大化したときにthis.Leftの値が0にならないのですが なぜでしょうか?
thisが何なのかToStringで出した上でかけよ(´・ω・`)
thisはWindowです
600 :
デフォルトの名無しさん :2013/10/05(土) 13:47:33.81
コピペマン参上!まで読んだ。
Win7 Pro x64、VS2010、WPF3.5ClientProfile、プラットフォームターゲットx86
で、友人内で使うアプリを開発しています。
System.Data.SQLite.dllを使うアプリで、
ビルド後の実行ファイルと一緒に
DLLも友人に渡しています。
SQliteファイルを読み込む場所で
問題なく処理が通る環境と、アプリが動作を停止する環境があり、
なぜ動作停止するのか原因がわかりません。
それぞれの環境は以下になります。
<OKのもの>
・Win7 Pro x64、VS2010あり、自作PC
・Win7 Pro x64、開発環境なし、自作PC
・Win7 Home x64、開発環境なし、SONY VAIO
・Win7 Home x86、開発環境なし、自作PC
<NGのもの>
・Win7 Pro x64、開発環境なし、自作PC
上記の情報だけでは、<OKのもの><NGのもの>に
全く同じものがあるため、別のどこかが違っているのだと思います。
NGの人のPCにて、SQLite読み込み時に動作停止した際の
イベントログを取ってもらったのですが、
どこをどう対処すれば良いのか分かる方いらっしゃいませんでしょうか?
●イベントログの中身です
ttp://www.dotup.org/uploda/www.dotup.org4554675.txt (以下に続きます)
603 :
602 :2013/10/05(土) 15:51:11.42
(続きです) ===== すみません、書き込んでから気がつきましたが、 Win7は全て SP1 を適用済みです。 ===== イベントログを見ますと、 C:\Windows\syswow64\KERNELBASE.dll の中で System.DllNotFountException の例外が出ているように見ます。 DLLが見つからないとして考えられることは SQLite.dll が無いとかですが、このDLLは間違いなく exe と 同じ場所に置いているそうです。 「開発環境が入っていないから、何かしらPathが通っていない?」 とか考えましたが、開発環境が入っていない装置でもOKなものも ありますので、よくわかりません。 お知恵をお貸しいただきたく、よろしくお願いします。
読んでないけどVirtualStoreの問題に一票
605 :
デフォルトの名無しさん :2013/10/05(土) 16:29:15.96
AnyCPUやめて86に統一して、SQLiteを86用に入れ替えたらどうなるかな? あと、NuGetに86/64兼用のやつが有ったけど試してみたらどうか 俺は悩むのが面倒になってSQL ServerCEに乗り換えた
606 :
595 :2013/10/05(土) 16:30:15.04
tabcontorlなのか〜 tabitemなのか〜 それともヘッダなのか〜
608 :
602 :2013/10/05(土) 16:40:32.53
>>604 レスありがとうございます。
VirtualStoreについて調べてみます。
(ざっと見てみましたが、Windowsシステムフォルダでの
操作は得に行っていないため、違うかな、という印象です)
>>605 レスありがとうございます。
AnyCPUではなく、x86ターゲットでビルドしています。
また、「Win7 Pro x64、開発環境なし」にて
動作OKと動作NGのものがありますので、
x86かx64か(動作環境、ビルドターゲット)の違いによる
影響ではない、と考えています。
NuGetのお話や、SQL ServerCEについての情報を
ありがとうございます。調べてみます。
609 :
デフォルトの名無しさん :2013/10/05(土) 16:52:28.25
>>606 内側にGrid配置して、その大きさ引っ張ってくればいいじゃん
zip解凍せずに使ってるとか
611 :
602 :2013/10/05(土) 17:09:49.44
>>610 それも考えましたが、ちゃんと解凍していました。
>>608 どうみてもスレ違いなんだけどなぁ・・・まあいいや。
動作が異なる原因はGACの中身の違いに一票。
利用するバージョンのSQLiteがGACにインストールされているかを確認したら?
GACの中身によっては、sqlite.dllが使用されない状況になってるよ。
(故にsqlite.dllの不備に気付かない。)
> SQLite.dll が無いとかですが、このDLLは間違いなく exe と
> 同じ場所に置いているそうです。
x64とx86で動かすなら、これは間違い。
sqlite.dllはx64専用又はx86専用のいずれかなので、
両方の環境で動かしたいなら2つのsqlite.dllが必要。
exeと同じ場所に置くってことは、1つしかsqlite.dllを置いてないよね。
正しい置き方についてはSystem.Data.Sqliteのドキュメントを参照の事。
613 :
612 :2013/10/05(土) 18:06:38.98
あぁ、x86ターゲットなのか。
だったら
>>612 の後半は無視してくれ、
ところで、"sqlite.dll" というファイル名はどこから出てきたの?
確かに、sqlite.dll を使うバージョンのSystem.Data.Sqliteもあったような気がするが、
俺がいつも使ってるのは SQLite.Interop.dll を使う奴なのでちょっと気になった。
614 :
602 :2013/10/05(土) 18:31:25.34
>>612-613 WPFで開発していたためこちらで
質問させていただきました。申し訳ありません。
GAC、意識したことが無かったので
勉強します。ありがとうございます。
>ところで、"sqlite.dll" というファイル名はどこから出てきたの?
現状、System.Data.SQLite.dll のみを使用しています。(exeと一緒に配布しています)
WPF、C#にてSQLiteを使う方法を
ググって探しながら、どこかのブログか何かを
見ながら導入したことを記憶しています。
記憶を頼りにググってみましたが、
どこを参考にしたのか探せませんでした。
現時点で動かせている環境がたくさんあるのですが、
もしかしたらGACに SQLite.Interop.dll がインストールされている
環境か、そうでないか、という違いかもしれないでしょうか。
ファイル選択ダイアログすら出ないだろ? IDEが半分しか使えない。
TriggerAction継承したクラスに依存プロパティ定義したんだけど、 いざXamlで使おうとしたら認識してくれない・・・なぜですか 定義コードは以下の通りです public static readonly DependencyProperty TargetCursorProperty = DependencyProperty.Register( "TargetCursor", typeof(Cursor), typeof(MouseCursorChangeAction), new FrameworkPropertyMetadata(Cursors.Arrow));
対応する普通の形式のプロパティは宣言した? xamlではそっちを見てるので。
>>617 認識してくれました!
ありがとうございます
619 :
602 :2013/10/06(日) 12:46:17.44
WPFについて質問した者です。 下記でひとまず解決(動作停止する環境でも、動作するようになった)しました。 ■以前使っていたSystem.Data.SQLite.dll V1.0.81.0 このバージョンのものの場合、SQLite.Interop.dll が無くても動作していました(1人以外の環境で) ■環境の再構築 V1.0.88.0 のSystem.Data.SQLite.dll などファイル一式を更新 このバージョンの場合、SQLite.Interop.dll が必要になりました。 環境の再構築をして検証を行ったところ、 (私が動かしたい)環境の全てで動作しました。 動作停止していた原因は引き続き追究することとしますが、 ひとまず動作しましたので、ここで消えさせていただきます。 沢山のアドバイスや新しい知識をいただけて本当に助かりました。 ありがとうございました。
620 :
602 :2013/10/06(日) 12:47:02.33
一行目、いきなり間違ってますね。 SQLiteについて質問したものです。 が正しいです。
どっちでもいいよ 回答には影響ない
WPFでテーマを新規で作ったり編集したりするのは何のソフトが一番いいですかね
VisualStudio
ウィンドウにMediaElementを配置して、 音を鳴らし終わったらウィンドウを閉じいるんですが、 その時にMediaElementがリークを起こしていみたいなんです。 閉じる前にMediaElementのSourceにnullを入れて、 Close()を実行したりはしていますが、 参照を残さない為に他に処理すべき事はありますか?
音だけならMediaElement使うな
>>625 規定時間経過時に曲のフェードアウトを行います。
それをStoryboadで管理しているので、
親和性の高いMediaElementを使用しています。
解消出来なければSoundPlayer等で代用することになると思います。
627 :
デフォルトの名無しさん :2013/10/11(金) 10:06:04.74
mediaelementじゃなくてUIを持たないMediaPlayerを使い VMに配置して、VM自体は使いまわししたらどうだ?
.load sos/Windbgなど、残っている参照を直接調べる方法もある。
UserControl内にScrollViewerを配置すると 表示された時にScrollViewerが動かないんだけど これってガイシュツ?
いいえ
632 :
624 :2013/10/15(火) 13:08:11.40
>>627 SoundPlayerでボリュームの調整が出来なかったのでそのように実装しました。
>>628 そもそも曲の再生に関係なく、ビジュアルツリーに登録した時点で
MediaElementのインスタンスをリーク無く開放する手段が無いように感じていますが間違っていますでしょうか?
例えばXamlにMdeiaElementのみを設置したウィンドウを作成し、
そのウィンドウを閉じるだけで(再生の実装も無し)参照が残るように見えます。
>>629 残っている参照はMediaPlayerState.Helperということは分かっていますが、
開放する手段が分かりません・・・。
亀レスで申し訳ありません。
結局
>>627 のように実装することにしました。
アドバイスありがとうございました。
hostでフォームのコントロールを貼り付ける技をようやっと 習得しつつあるが、WPFから入るとフォームの詳細設定って、 やはり一時代前の感覚はあるな。面倒臭い。 これ使うと普通にダイアログ出せるのか?
ダイアログって何のこと?
>>634 WPFってファイルオープンダイアログすら未実装だろ。
MSが「WPFはあくまでもプレゼンテーションライブラリなので」
実装却下してるからには、普通にアプリ開発するならフォーム
使えってことか。
ストアアプリのFileOpenPickerみたいなのをデスクトップにも用意してくれればいいのに
638 :
デフォルトの名無しさん :2013/10/18(金) 19:22:41.77
>>636 Microsoft.Win32.FileDialogをご存じない?
ユーザー目線から却下されます。
ああ、なるほど。Vista標準で開発されたのか。 じゃ、なおのこと将来ないな・・・
一体何に対する「ああ、なるほど」からの「Vista標準」結論なんだろう
WPFにないのはFolderBrowserDialogな
みんなVS2013に申したの?
ストアアプリ作る人以外はあえて2013にする理由は弱いような気が
>>644 2013のCodeMapデバッガーは便利だぞー
2013はコンパイラが変わったとかなんとか意味がさっぱりわからん
DependencyPropertyA <-2way bind-> DependencyPropertyB <-2way bind-> Source こういう風な構成の場合DependencyPropertyAを更新するとループしてスタック 逝っちゃうんだけど普通はどういう風に実装するもんなんだろう? AとSource双方から更新がある想定でBはAのコントロールを内包したコントロール。
>>641 UIをDX9でレンダリングして、Vista世代に合わせたアプリ開発を
狙ったんだろ。
>>642 いや、フォームの手順でそのままやろうとしても受け付けないぞ。
>>647 値の変更がなくなったら止まるからループしないだろ?
でも、2wayを複数設定するのはやめた方がいいと思うけど。
>>648 むしろOSの世代に合わせないGUIフレームワークを提供するのが狙いだよ
WinネイティブなGUIを使ってるとOS側の進化を待たなきゃいけないからニーズに素早く対応できない
結局WinRTでネイティブなGUIに回帰したけど
ネイティブから乖離したらJAVAみたくなるやん
>>650 ネイティブ回帰でなくてメトロネイティブになっただけじゃないの?
しかも超絶不人気…
silverlightみたいなのを軌道に乗せたいなら子会社で独立した 看板立ててやらないと難しいのかね。MSの企業コンサルティング なんかする義理もないが。
>>652 同じだろ
Winに組み込んじゃった時点で今後永久に保守し続けないといけない
こうやって無駄にリソースを食うOSができるんだな
>>649 それがset内で値チェックして差分ある時だけ更新にはしているけれども
そもそもSetValue呼んだところでStackOverflowで死亡。デバッガーじゃ追えない。
何か俺のコード側が根本的に間違っている気がするな・・・。
>>655 ここ暫くWPFのプログラムゴリゴリ書いていて思うのはフレームワーク側を作った人は
リソースを抑える事とかを色々考えてこうなっているんだろうなと思うところを感じる部分も
あるけどmvvmとかのデザインパターンのせいか冗長すぎてうぜーと思う事が多い
論理的に美しいみたいなのって疑問を感じる事が多い
糖衣構文用意させたらいいんだよ ヘジをクビにして
WPFとXAMLってヘジが作ったのか?
660 :
デフォルトの名無しさん :2013/10/24(木) 16:32:17.07
いやあいつがシュガー拒んでるって話じゃねーの。知らんけど(´・ω・`)
もう正直genericでasyncなWinForms作ってくれたらそれでいいわ
662 :
デフォルトの名無しさん :2013/10/24(木) 22:23:30.34
>>661 いまのXAML系でいいじゃん(´・_・`)
>>662 XAMLの部分もっと開発しやすくなればねぇ。
関連する所でミスってると全然違うところで意味不明のエラー吐いたりするし。
デバッグの仕方って何かあるのかな?正直printfデバッグ以下の状況だと思うが。
XAML書いてると俺はいつの間にXcodeを使っていたんだ?ってくらいコード補完やデバッグがしんどい・・・ 話かわるけどiOSにOffice提供したんだしOS XにVS提供してくれんかね・・・ MonoDevelopが糞すぎて泣けてくる
万人向けのC++やC#のエディタ部分と 物好きの玩具の域を出ないWPFのエディタ部分を比べたら どちらにリキを入れるべきか、火を見るより明らかですよね
それは因果関係が逆のような気もするけどね。 まあWPFが普及しないのはVSのサポートが弱いせいだけとも思えんけど。 ググるとMVPを中心にWPFをマンセーしてる人が多いけど、個人的には いちいち設計に疑問に感じる部分が多すぎるように思う。
そもそもお金になるかならないかで言えばWPFは日本では金にならんのだよな XAMLの案件ってASPかSilverlightばっかじゃん、WPFの案件って更に少なくなって今ほとんどないしな。
668 :
デフォルトの名無しさん :2013/10/25(金) 16:47:34.63
>>666 ちなみにどの変が疑問?
自分はストアので触っていてこういう時にはこうするっていう逆引き的なのがないとちょっと突っ込んだことやろうとすると分からなくなるってのは有ったけど、
全体的には柔軟な仕組みを作ろうとするとしょうがないよなーとも思ってる。
他にもっといい設計のUIフレームワークってある?
>>667 使用する技術の観点から案件の検討するの?変わった会社に勤めているんだな・・・。
自分で設計しない(出来ない)下請けさんかね。
WPFは認知度低いというかWinFormsで止まっている会社多いのは確かだし
単にそういう提案出来る技術のある人が少ないだけだと思う。
ストアアプリはスレチかもしれないけど 設定パネルとかはデフォで準備しておけばいいのにな 柔軟というか全部作らないといけないのは何ともいただけない カラーピッカーすらない 何を考えているんだか
>>669 だからそれを客に説明したとしてWinFormsよりWPFの単価が高い理由を仮に理解されたとしても容認されんだろ
客は安くて早いしか望まないんだから
技術力だけで飯が食えるなら日本のIT業界が某社を頂点とした搾取構造になるわけねーだろ
技術力云々いうなら何故日本からGoogleのような会社が出てこないんだ?
競争なんて上澄みだけが美味い汁吸えるんだよ、それともおまえはシリコンバレーで名前が売れてるほどの天才ですか?
672 :
デフォルトの名無しさん :2013/10/25(金) 23:53:04.55
>>671 技術によって金が高くなるんじゃなくて、その技術によって客に高い価値を与えられるから高くなんだろ(´・ω・`)
それが出来ないなら使い慣れた客が望む技術使ってればいいやん
客に技術的な説明して真に理解されると思ってんの? 行政や一部上場の顧客ほど承認欲求が強いんだよ IBMや富士通の言うことなら技術力関係なく○○さんが言うならって信用すんだよ
674 :
デフォルトの名無しさん :2013/10/26(土) 00:05:16.87
WPFでWinFormsより早く安く作ることができればいいわけだな
何の話だよ
676 :
デフォルトの名無しさん :2013/10/26(土) 00:15:08.91
>>673 だからお前は技術とか関係ないとこでやってんだから技術の話に口出さなきゃいいじゃん(´・_・`)
うちは客にSilverlightやWPFやストアアプリとかXAML系で作ったもん納品してるわ
>>668 一例を挙げればRoutedUICommandとか。
そもそものコマンドの目的からしたらVMのメソッド呼び出しを抽象化したものでなきゃいけないはずなのに、
RoutedUICommandの実装じゃ結局コードビハインドのイベントハンドラを呼び出してるのと
同じことで、あんなの何の意味があるのか。
>>667 マンセーしてる人、俺も含めてだが、たぶんデフォルトのWPFのみじゃ使ってないぞ
PrismとかのMS製ライブラリ使うと、そういう矛盾感じなくなる
基本ICommandしか使わないし
nullチェックってなんだろ あれ毎回しないといけないのかね
ICommandしか使わないとか、なんでそんな苦しいことをわざわざ…… マゾか
モデルがいらないようなケースでもコードビハインドのためだけにVM使ったりする?
目的と手段が逆転してると思うんだよね 健康になるために自殺を厭わない感じ 俺はフォームのデザイナーとバインド機構しか利用してないわ 十分だよ
>>683 普通コードビハインド書きませんしおすし
デザイナなんか使ったらクソ汚いXAMLが生成されるから逆に苦しくなる気が
>>686 WinFormと汚いXAMLしか見たこと無い人には十分なのでは
688 :
684 :2013/10/26(土) 11:55:49.02
誤解されちゃったけどポトペタは利用しないよ 手書きに決まってる XAMLはフォームのデザイナーという意識はないんだろうかね ポトペタエディタだけをさすの?
「HTMLはWebのデザイナーという意識はないんだろうかね」と言い換えてみたら頭のおかしさが分かるんじゃねえの
Webフォームのデザイナーではあると思いますけど そこでWebという言葉を使うならフォームではなくアプリケーションと言うのでは? >>頭の良いお方
少なくともこのスレでは誤解した人間の方が多いから 少なくともこのスレの常識からはあなたの方がズレている
普通に考えて、XAML直書きの事を「フォームのデザイナーを利用する」とか表現しない これがXAML書いてる事を指す現場が存在するとは思えない
まあVisual Studioではエディターとデザイナーは厳密に区別されてる
「HTMLはWebページのデザイナー」だと言われた場合 その「デザイナー」が指すのはデザインの専任者でもホームページビルダーでもないと思うわ。 横槍だけど。
デザイナはコードを生成する元なんだからデザイナ利用してるならXAML書いてない XAMLで書いた内容がデザイナに反映されるという文脈なら分かるが明らかにそうじゃないし
フォームのデザインにXAMLを利用する なら分かるよ
>>671 根本的な所でズレている気がするなぁ。
まず同じ物作ろうとした時工数的に WinForms<WPF からスタートなのが違和感あり。
そういう説明したらそらアウトプットが同じになるなら当然安いほうでって言うに決まってる。
うちは最近WPFで開発するようにしているけど
>>678 の言うようにフレームワークを使う、
常用するコンポーネントを蓄積していくという普通の事をやっていればどっち使っていても
開発速度に差は無いと感じているけど、どういう要素がWPFの方が工数かかるという根拠なの?
単に技術がない(経験のある技術者がいない)だけに見えてしまうんだが。
経験のある技術者がいないってのは凄い問題だと思う 何年経ってんだよ 入門障壁が高いのも問題 winformsだったらjavaなどから移ってきた技術者でも容易に使える ほとんどやってることは同じだからちょちょいで使える
こんな簡単なことも分からないから馬鹿にされるんだよなあ
WPFみたいな特殊事例で常用するコンポーネントが蓄積されるような状況にあるわけねーじゃん 工数が同じになるのは初期投資償却した後でしょ 大抵の会社は初期投資すらしてないんだよ
WPFが特殊事例なー
めくら以外の誰もが特殊事例だと認めるところだろ
MSもストアアプリメインになってるのが終わってる
704 :
デフォルトの名無しさん :2013/10/27(日) 13:16:20.68
今更UIをFormsでつくってくれいわれてもこまるなー。今日時期やりたくないっす。 標準のコントロールが足りないとかあるかもだけど作りとしては遥かに楽。
やっぱりWPFは裸の王様だと思う。
そうやって古い技術に固執するから仕事がどんどんアレになるんじゃないの
WPFにダメだししてるからって古い技術に固執してるわけじゃないと思うけど。
>>698 >>700 育てもせず、勉強もせず・・・なら当たり前の結果だと思うんだが
そんなもんWinForms使おうとMFC使おうとJava使おうとなんでも同じじゃね?
WinFormsの基本コンポーネントだけで作れるアプリならそれこそ何使っても一緒だし
何使っても同じようなものは作れるよ 重要なのは作業効率 WPFで開発すると時間がかかる
脱線するとアレだからナントカパターンとするけど、そのナントカが 設計しながら製造やるようなとき、マッチしないんだよなぁ。 ありえねーとかはどうでもいい。事実としてそういうときは多い。
理論は素晴らしいし納得できるが 実際それをやろうとするとアプリのロジック以上に悩まされる結果にw あのパターンは娯楽だと思うよ
>>709 うん、だからそれは単にノウハウが無いだけじゃないの?って言ってるの
パターンにハメて(フレームワーク使うというのはそういう事)、スニペット使を使う
そういう事をすれば大して効率は変わらないと感じているけどな
それにメリットを見いだせないという話とWPFは効率悪いはイコールとは思えない
713 :
デフォルトの名無しさん :2013/10/28(月) 17:18:52.77
Formのポトペタでイベントにゴリゴリロジックのやり方でいいならWPFでも普通にかけるよね。 MVVMはユニットテストしたいなら必須だけどな。書きづらいところは素直にコードビハインド入れてなるべくVMに書くようにするぐらいのゆるい感じでやったらそんなにハマるとこもないと思うけど。
>>713 うん、そう思う。WPFが効率悪いと思っている人はWinFormsみたいな書き方しちゃいけない
という固定観念が原因だろうね。WinFormsよりはコードとデザインが分離し易くなっている
って時点でWinFormsに戻る理由は俺には無いなぁ。
でもListViewにDisplayIndexが無いのはどうかと思う
javaはライブラリやツールなどいろんなものが充実してて最先端技術を知るには一番いい .netは他の言語で流行ったものの型落ちの技術がやってくるところになってしまった 何故だ?
ListBoxItemにいろいろつっこみたいから もうWinFormsには戻れない オーナードローなんてしたくない
XAML系のUIはそういう柔軟性だけはいいね。 でもやっぱりWPFもXAMLも好きになれない。
719 :
デフォルトの名無しさん :2013/10/28(月) 22:27:16.00
ドカタにわかるくらいにならないと流行らんな
720 :
デフォルトの名無しさん :2013/10/28(月) 22:40:56.56
>>716 ろくにジェネリクスもラムだもないボンクラが何をほざいてるんだ?
ラムだじゃなくてラムダだっちゃ
最近はJavaの方がC#パクってる感がある
723 :
デフォルトの名無しさん :2013/10/28(月) 23:42:32.68
インスパイヤしただけだろ。
飲ま飲まイェイ!
ダーリンゆるさないっちゃ
メニューとコンテクストで同じ命令があった場合 コマンド機能ってらくだなーって思った ListViewにデータぶちこもうとしたら バインドやマークアップ拡張とかあんまり使ったことないのを学ばされて疲れた ここらへんもうちょっとシンプルに書けるようにならないのかなー
ObservalCollectionとか一瞬意味がわかりませんでした
綴り違うしな
Formsを簡単に変換できませんかね。できませんよね
両方の知識があればコンバーターは結構簡単に作れる
簡単に作れるのにコンバーターツールがないってことは簡単じゃないってことじゃないのか?
コンバーターってDSL書くってことだろ? いやー大変でしょw
733 :
デフォルトの名無しさん :2013/10/31(木) 00:01:31.54
つうかまともに動くものとか無理ゲーでしょw
だって同じ名前のコントロールでもメソッドとか名前変わってたり機能あったりなかったり 互換あるわけじゃないし無理ゲーだと思う。まぁ、あってもいらんけど。
そもそもコードをxmlにコンバートする時点で
Xamlを一切使わないでC#コードだけ書くっていうのならできそうじゃね?
737 :
デフォルトの名無しさん :2013/11/01(金) 00:22:12.66
AndroidもiOSもそのやり方でやってるわ。 WPFもそれでいけるよね
もともと大したコードを書いてないから変換も簡単にできる(キリッ
まずForm側の情報取得はインスタンス化してプロパティを見るだけでいいんだよ 最初に出現するコントロールと設定されてるプロパティを列挙しておく それから各コントロールのXElement変換処理を実装するだけ WPF案件にFormsでデザイン送ってきたアホのソースをコンバートしたときは二時間ぐらいでXAMLが変換できた コードビハインドは対象にしなかったけど、コード書き換えてコンパイラーを動かせば式木は取れるはず Graphicsとか触ってる箇所は知らん
どーも発想がテキストベースにしか行かなかったが、 ターゲットにするコントロールを絞れるなら、リフレクションでなんとかなりそうだな
>>716 10年前の書き込みかと思った。
ただ、今は .net系のほうが進んでいるけど、でもそれはマイクロソフトが提供する部分で、
周辺ライブラリは javaのような盛り上がりはないだろうね。
盛り上がってる? なんか中途半端で使えないものが乱立してるだけのような気がする
pythonやPHPで流行ったものもjavaまでは容易に移植されるけど そこからc#には何故か壁があってなかなか来ない VB? なにそれ?
Javaと比較してフレームワークは多いけどライブラリはほんと少ないよね 特に画像系は移植が途中までとかCをC++/CLIで自分でラッパー書けとかばっかw
VS2010の時はデザイナに表示されるWindowsの右下にWindowを自動サイズにするボタンが 存在したと思うんだけど、これVS2012では廃止された?
WPFのボタンって糞だな 文字が書いていない余白のところをクリックしても反応しない
747 :
デフォルトの名無しさん :2013/11/02(土) 02:29:04.08
MONOはWPF対応予定ないって創始者が言ってたけど 状況変わったかねー
> CをC++/CLIで自分でラッパー あ〜あ。 この一言で無知が露呈しちゃったね。
749 :
デフォルトの名無しさん :2013/11/02(土) 08:54:15.80
>>748 PInvokeがーとか言いたいの?浅知恵乙
ネイティブのDLLをC++/CLIでラップするのは面倒だったな。 ピン留めとか勝手にやってくれるP/Invokeの方が楽だった。
Boost.Pythonみたいなの作れよ
swigあるだろ
オープンソースのライブラリ関連は貧困だけどこればっかりはMSもどうにもできない
コントロールのスタイルをいじっているんですがうまくできません ComboBoxやListBoxでマウスオーバーのとき青いハイライトになります なぜスタイルの設定が反映されないんでしょうか <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Background" Value="{DynamicResource GrayColor}" /> </Trigger>
>>755 問題の原因が分からないから質問してるくせに、なぜその3行だけを抜き出してコピペするんだ
馬鹿なのか。
757 :
デフォルトの名無しさん :2013/11/02(土) 22:42:40.66
疲れているせいかこんなんで笑える
>>759 ControlTemplateは一度試したんだけど(IsMouseOver部分だけ書いた)
コントロール自体が表示されなくなった
ControlTemplateを作ると枠とかドロップダウンボタンなど全部作らないとだめってことでいいんでしょうか?
ControlTemplateで一部だけ変更するには上記のコードまるごとコピーした上で
変更するしかないですか?
WPFはデザインが楽って聞いたけど色の変更だけでもこれだけしないといけないって大変ですね・・・
WPFのデザイン楽とか大嘘だから 業務システムなんかで画面遷移が多い場合テンプレート組み合わせてWebっぽく作れるから効率いいってだけ
762 :
デフォルトの名無しさん :2013/11/03(日) 00:55:56.09
>>760 楽というか自由度が高い。それ故前のだとにっちもさっちもいかなかったものができたりもするが、自由ゆえにめんどくさいとこも。
嘘、大げさ、紛らわしい
コードとデザインが分離してるから分業しやすいとかも半分嘘だよな。 XAML見る機会が多いから他人の書いたXAMLはジンマシンが出てくる
765 :
デフォルトの名無しさん :2013/11/03(日) 08:46:58.81
>>764 フォームよりは明らかにしやすいだろ(´・ω・`)
Bindingソースだけ共有してれば割と分業楽だけど
WPFの直感的でないところは逆引きに頼ってる人にとっては天敵だな 体系立ててシステムを学習してないとそんな発想でてこないってのが多い
スタイルとかコントロールテンプレートとか、あとマークアップ拡張とか Help読めば理解できるけど、直感というか他での経験的にできそうなことが出来なかったりもするね 自前で作ったコントロールを使う場合はclr-namespaceを指定するとか、別のアセンブリだと指定の仕方がまたw
XAMLはinclude出来ると良いなと思うことが結構ある。まぁ出来るようになると 何処に何があるのか訳の分からんことになるのは間違いないけど同じ事を 何度も書くのはスニペットとか駆使しても疲れるわ。先ずはXAMLはツールが もっと進化しないとキツイけど自由度高すぎて作るのも大変だろうな。
優れてるのかどうかは知らないけど楽に書けるほうがいいね CSS3はアニメーションが楽に書ける まあ使わないけどな
>>764 蕁麻疹や反吐がでるXAMLはVBプログラマーがポトペタで作ったやつ。
アラインメントやマージンを知らないバカが作るとそうなる。
VB関係ないと思うが...
全部マージンで配置してあると、小数点以下がビミョーにバラバラだったりとかが… デザイナで小数点以下を無くすとかできないのかね。
そんなことよりはやくC++/CLIでWPFつかるようにしてくださいよ
キチョーメンな性格だな
キメラ言語w
さすがにアラインメントやマージンが各XAML毎にバラバラな画面とか保守したくないな
778 :
デフォルトの名無しさん :2013/11/03(日) 20:14:22.14
マージンバラバラってGUIから配置してるとそうならん?手で書いてるとあり得んし 色々理解してからは完全に手書きだな。昔のHTMLみたいだけどw 各コンテナの特性理解するまではマジで糞だと思ったなぁ。
何言ってるのかよくわからん マージンなんかデザイナでどう配置しようが、プロパティグリッド(みたいなの)で 明示的に指定しない限りデフォルト値じゃないのか。
そもそもデザインできない奴がコード云々いっても広まるわけないんだよな WPFはもっとデザイナーに訴求しないと、Windowsでこんなに美しいUI実装できますよ!ってね まぁそんなことよりさっさとフォントレンダリング改善しろよって話、8では改善してくると思ったがこれじゃ9でも怪しいな 何故WindowsのフォントにデフォでDrawString適用しないのか意味がわからない DrawString使えばOS X並みに綺麗なフォントが描写できるのに・・・
782 :
デフォルトの名無しさん :2013/11/04(月) 23:35:17.29
>>780 Gridにエレメント貼り付けたことないの?
>>780 デフォルトがGridなのでそこに何か貼り付けたら全部マージンで位置調整されちゃって
偉い事になるんだが全く触った事ないんだろうね。最初そういうコードが吐かれている
のでWPFってそういう流儀で書くものだと思って頭抱えたわ。
>>781 俺もそう思う。
なのでBlend Expression的なデザインに特化したツールがVSと別に配布されるべきだと
思うんだけど・・・VSに統合されて終了とか何考えてるんだよと。
regionで畳んでるコード付近で自作スニペットの挿入やるとカーソル位置じゃない所に 追加された挙句一部のコードを巻き込んで上書きしやがるんだけどこれって スニペットの書き方が悪いの?それともバグ?
なんでWPFスレで聞くのか
だめだ早くツール作りたいのにWPF難しすぎる
>>759 これずっと悩んでいるんだけどできない
ListBoxでフォーカスがある行を赤で下線で表示
ListBoxでマウスオーバーしたところをハイライト
たったこれだけをやりたいだけなんけど
デフォルトのはMouseOverもFocusedもないので、自分でVisualStateに追加したんだけど
クリックした途端にエラーが出る
そのエラーメッセージもFrameworkPresenter.dllでエラーってなるだけで
何がどうだめなのかわからない
ControlTemplete.TrigerでFocusedを設定してもやっぱり効果なし
ListBoxでよく使われているはずなのに情報が全然ない
Blendあれば楽勝なんだろうけどExpresだからついてないし
もうちょっとヒント教えてもらえませんか?
もしくはWPFで作られているフォーカスやマウスオーバーを使っているListBoxなどあったら教えて下さい
もしかしてExpress使っている人でWPFやっている人いないのかな
普通にDataTemplate食わせるだけじゃないの?
素直にコードビハインド書けば3分で終わるのに ご覧くださいこれが本末転倒というものです
>>789 ItemContainerStyleだろう
これでWPF流行ってたらおかしいわ コードビハインドで十分
>>788 見事につられてる君に俺が解答を上げよう
<Grid>
<ListBox ItemsSource="{Binding}">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
</Grid>
これが正解
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = Directory.GetFiles("C:\\");
}
}
さあマウスオーバーしてみよう
794 :
デフォルトの名無しさん :2013/11/06(水) 00:44:32.55
WPFって逆引きみたいのあるんだっけ?
一通り見たりしたけどWPFとストアでまた微妙に違ったり
>>788 みたいにやりたいことにたどり着けないことがある。
tipicalなものについて逆引きあるとたすかるんだが。
英語の書籍しかない
需要が無いものの書籍とか同人誌で出してるべきだし
あるコントロールで使えても他のコントロールでは通用しないこともあるから 本を作りにくいと思う ちゃんと網羅したらぶっとい本になる…
なまじっか検索して出てくるから集積するだけだとウリにならんし
慣れれば
>>759 のページとかでコントロールの構造見たりデフォテンプラ眺めれば
どこ弄ればいいか分かるようになってくるぜ
>>793 うわーあっさりできた、なんなのー?
こんな短いコードでできるのに俺は一体何をやっていたの?
ListBoxデフォルトをコピーした長いコードのVisualStateをいろいろいじくりながら
(アニメーションさせたいわけじゃないのに・・・)と疑問に感じながら格闘してたのに
ぐぐってもBlendでやれってのばかりだし
>>793 は
スタイルだけをいじくったら赤の下線にしたり、選択しているものにも下線したりできますか?
>>790 コードビハインドでは書けないと思ってました(例がXamlばかりなので書き方もわからない)
基礎的な@ITやMSDNはひと通り読んだのになぁ。まったく理解できてなかった
とにかく教えてくれた方々、ありがとうございます
801 :
デフォルトの名無しさん :2013/11/06(水) 01:35:26.20
>>795 英語の書籍でもいいんだけどねぇ
どれが良いやつなのか探すのがむずい。
>>799 確かにその辺でつかんでくのが早そうだね。めんどくさいが。
>>793 ストアだとトリガーないからどうなんだろ…
WPFは、 「取り合えず触ってみて、行き当たりばったりでヘルプを読みながら作ってみる」 奴には向かないな (それでも出来る奴は出来るんだけど) 一から順序立てて段階的に学習してかないと、中々身に付かない 一度覚えちまえば、後はすげー楽なんだけど
そうかあ?w ロジックを理解しただけではどうにも分からない、ワークアラウンド的な知識が 結構要求されると思うんだけど。 もちろんそれはWindows Formでもあったことだけど、このあたりのすっきりしない感は Windows Formに比べても酷くなってるとしか...
Qt使おうぜ
1から学べるところってあるの?もしくは書籍とか コントロールのコマンド一覧、トリガープロパティ一覧、スタイルのプロパティ一覧ってどこで見れますか? ビヘイビアって何? できることとできないことがわからない バインディングのバインディングのバインディングでわけがわからなくなる インテリセンスがないから手探りで作れない 情報少ない もう挫折しそうだ
それなりの規模のアプリを完全なMVVMで1つ作ってみれば、いろいろ身につくはず。 安易にコードビハインドに逃げると身につかないかも。別にずっとMVVMで作れってんじゃなくて、 目標があった方が良いってことな。そこからどうするかは覚えてから考えればいい。
>>804 Qtはもうオワコン
これからはWPFの時代
MVVMでアクションゲームは作れますか?
ゲームはwpfにはそもそも向かない。フレームワークの選択が間違ってる。 MVVMにもマッチしない
810 :
デフォルトの名無しさん :2013/11/07(木) 20:13:34.78
>>808 疎結合なバグの少ないゲームがかけると思います(´・ω・`)
アクションゲームの分野じゃないな
WPFまわってきたから軽く片付けてやろうと思ったらドハマりwww BitmapやGraphicsが一新されててわけわかめ・・・ 画像ファイル読み込んでImageに表示するだけでなのに進まないわー ラスターじゃなくてベクターだからって理屈はどうでもよくて、なんでWinFormsの知識をゴミにするかな・・・
そりゃ別モンなんだからゴミにもなるだろ…… WinFormが100年続くとでも思ってたのか? 業務だけやってると世界から取り残されるから新しい技術は常に勉強しておけと…
画像読み込んでImageに表示する程度はデザイナーでも余裕なので、それを参考にコードを書けばいいよ
まあWPFにはdobonが無いから辛いのはわかる
816 :
デフォルトの名無しさん :2013/11/07(木) 22:47:58.89
>>814 XAMLの例は載ってても、それをプログラムで動的にやるにはーで結構違うのがあって調べるのに2倍かかったりするからなー
XAMLのほうは、試行錯誤するにはコメントアウトがやりにくくすぎる。
バージョン管理しろ
マジでdobonないの辛過ぎるわ 師匠のいない俺はdobonに育ててもらったようなもんだから WPFもお願いしますよdobonさん
ウインドウ一杯のCanvasに絶対座標でコントロール置いてくってのはWPFじゃ邪道かな 別のアプリから移植するんでコンバータ作って楽してるんだけど、なんか後ろめたさが拭えない
エッセンシャルWPFの370ページのBindのサンプルでコレクションを ListBoxにバインドするのが表示されなくて困っている その前の単体のクラスをバインドするのはうまくできたのに 誌面に全てのコードが完全に書かれているわけではないので、 どこあたりで間違っているのかがわからない
いやページ教えられても持ってないですし
本持ってる人だけしか相手にしてないみたいだしほっとけ
持っている人がいればいないかな、内容は結構長い WindowのdataContextにデータのクラスをnewで貼り付けてあって、そのクラスの中にIListのコレクションがある で、そのコレクションはObservableColecction<>()でnewされていて、 表示される方のListBoxはItemSource="Binding Path=コレクションのプロパティ"としている あとは、ボタンのから、DataContextをキャストしたクラスのインスタンスをたどってコレクションに向かって追加内容をAddしているんだけど Notify関係がいまいち把握できてないので、この辺りが抜け落ちているのかもしてない
説明書いたけどこれじゃわかんないね
BindingするクラスでINotifyPropertyChangedをインプリメントしてないとかじゃないよね
コレクションが含まれている親クラスのNofifyは実装しています
>"Binding Path=コレクションのプロパティ" どう考えてもここが一番怪しいからちゃんと書いた部分出せよ
怪しいXAMLはこう。 <ListBox ItemsSource="{Binding Path=Addresses}" ></ListBox> クラスはこんな感じ public class Person : INotifyPropertyChanged { public Person(Address ad) { addresses.Add(ad); NotifyChanged("Addresses"); } private IList<Address> addresses = new ObservableCollection<Address>(); public IList<Address> Addressees { get { return addresses; } }
なんでIListにしているんだ?バカか
DataContextに対象オブジェクト入れてないとかそんなことじゃないよな?
Addresses Addressees 単純に名前間違ってるとかじゃないよね
バインディングエラーは出力ウィンドウに原因が吐かれるからチェックしておくといいよ
>面目ない うまい
こういうの嫌いだから WPFは嫌いだ 生産性が低すぎる
840 :
デフォルトの名無しさん :2013/11/08(金) 00:19:17.74
まあここは動的のダメな面が出てるよな。
お騒がせしました 勉強になりました
VMのデザイン時インスタンスを設定して、バインディングビルダでバインドを書けば、 プロパティ一覧はビルダに出るよね確か。逆にだりーからこんなもん使ってないけど
MSが糞すぎるんだよ エディタとデザイナと言語仕様で何とかできる問題 事前に登録したワードでしか指定できないようにしろ
>>840 Path名間違えても実行時エラーとか出ないんだよな
結構ボディブロー的に効いてくる
実際のところエラーログは出してる以上、例外投げる実装にも出来たはずなんだけど なんでせんかったんや
せめてバインディングのパスをデザイナーで書いたらイベントハンドラーみたいに自動生成して欲しい
リフレクションなんていらんかったんや
849 :
848 :2013/11/08(金) 03:29:18.50
多分、VS2013から。
850 :
デフォルトの名無しさん :2013/11/08(金) 04:17:42.37
>>845 なんでなんだろね。
ストアだとテーマアニメーション定義する時になんたらコレクションの中に入れないとダメなんだけどXAML上は囲まなくてもかけちゃって実行時に意味不ですっ飛ぶ。
コンテンツみたいななんでも入れられるとことわけられる気がするんだがなんかあんのかね
逆引きないから云々言ってる奴って基本コピペプログラマーなんだろうなぁ MSDN読んで自分の頭使っても分からないならcodeplexなりで人様のコードを 拾ってきて勉強するとかすりゃ良いのに。そういうのって適正の問題な気がするぜ? 言語とかフレームワークに関係ない次元の話だと思う。
どうもゆとり世代かそれより下は 「教えてもらってません」 っていうのが多い
>>852 「俺も、俺も」って同調しとけばいいじゃん
>>851 みたいに断片的にしか物事判断できないバカってプログラマに向いていないと思うわ
>>854 くやしいのうwww
じゃあ逆引きが無いとWPFの勉強出来ない、書けない理由を説明してみ?
WPFで作られたプログラムなんぞゴロゴロあるけどみんなどうやって書いていると
思ってるの?少なくとも俺はWPFで業務アプリ作ってるけどそんなもん要らなかったぞ。
って書いてて思ったけど英語の情報は全く見ないのが前提になってそうだな。
チューリングテストみたいだなw
>>855 そんなこと言ってるから普及しないんだお
dobonがwinformsを広めたといっても過言ではないんだお
それは過言だなw dobon乙としかいいようがないw
>>855 お前の思い込みが能力の限界を示している
860 :
デフォルトの名無しさん :2013/11/08(金) 13:07:44.73
>>855 どの程度のものを作ったのか分からないけど、自分が分からないところの情報がピンポイントであったら話が早いし逆引きはそういうもんだろ。
俺がチームマネージャーで逆引き含めいい情報源があってその方が習得コスト下がるならいくらでもかうわー
>>859 そればっかりだなw 具体的に書いてみなよ無脳君
>>860 存在その物は否定しないよ。
あったら便利と無いと勉強できないは大分差があると思うがどう?
WPF ToolkitとかのMS謹製のコードも見れたりするしWinFormsの時よりも
勉強しやすい環境になっていると思うけどな。大抵のネタはStackOverflowで
議論されている気もするし。
dobonが無いと嘆くより、本当に必要と思うならそれを自分(達)で作る位の
気概が必要な気もするけどね。
まず覚える価値ないし そんな気張らんでもいいんじゃないか
863 :
デフォルトの名無しさん :2013/11/08(金) 13:53:45.03
>>861 勉強しやすい環境になってるのになんで普及しないと考えてる?
ボリュームゾーンの土方は未だ英語に拒否反応示してる人多いよ
あなたは能力があるのかもしれないが大抵は
まずはコピペで動かしてるうちに覚えるんじゃないかな。
PHPやJavaScript界隈はその辺が充実してるから普及したし
>>861 お前に具体性がないからな、具体的に書けと言われても困りますね
お前は皆お前と同じ時間プログラミングに費やしたと思っているんだろうな
コミュ症特有の思い込み
>>861 はコードをコピペすることしかできなさそう
プログラムは究極的にそこを目指してるんじゃない? 再利用可能なコンポーネントにモデル(ロジック含めて)食わせたら後は勝手にやってくれる ってのが未来像じゃないのか?
アセンブラのジャンプ先を間にある命令語のバイト数を数えて 決めてた世代だけどあれがプログラムの本質だとは思わない
だね。ハードに近いと偉いと勘違いするけど 抽象化のほうが偉いと思う
高級言語と呼ばれるシロモノはこの10年そんなに労力変わってない気がする ライブラリやフレームワークが新化しても一緒に要求も上がるからな気もするが
WPFのdobonみたいなサイト教えてください!
要は網羅的に備忘録を集めたサイトか。無い。
WPF Tips集ならあちこちにある 英語のサイトもある ググれ
dobon以外のサイトは筆者の自己満テクニックを我慢しきれず挿入してくるので難しいんですよねー 基本中の基本で1行づつ解説いれてくれるdobonさんのサイトは本当にありがたいです
Microsoftはdobon氏に謝礼を渡すべき
>>863 それは単純な話。日本ではPCアプリの開発が人気なくなったから。
そしてWindowsPhoneやWindowsRTが壮絶にこけてるから。
みんなWebやiOS、Androidそして組み込みの世界でCとかのコードゴリゴリ書いてるダロ
設計云々じゃなくて単に人がいないんだよ。
>>864 本気で意味が分からん。どこをどう読んだらそんな妄想にたどり着くんだ?
>>873 結局ちゃんと動いている人のコード読むのが一番速いと思うのは変かな?
へー、そんな書き方があるんだって思わないで自己満とか思っちゃうあたり・・・。
WPFは応用が重要だしdobonレベルの基礎の話はMSDNで十分じゃないの?
dobonみたいなサイトはあったほうがいいのに なぜそこまで否定するのか
>>878 話がぜんぜん噛み合ってないですね、あなたが上から目線で見下して必要ないと言ってるのはよくわかりましたw
>>877 あったほうがいいですね、実際dobonのサイトは非常にわかりやすいです
878が英語読めない奴がプログラミング(ryって感じの切り返しがくると予想w
でもdobonみたいなサイトがあったらWPFユーザーは増えると思うけど
10km先に大手量販店あるのに、近所にコンビニいらなくねー?みたいな話だなw
選民思想ってやーね
昼間からいいご身分だね
ナマポがあるからね 悠々自適ですわw
自分に必要ないものはこの世に存在してはいけない教の人。
886 :
デフォルトの名無しさん :2013/11/08(金) 18:06:34.56
情報まとまってる方がいいよねってのといらないよねって真反対の意見だから噛み合うはずもない(´・ω・`)
日本のIT業界は土方だらけというのが良く分かるスレだなw
必要ないってレスが必要なのか?って思うんだけど 実際dobonで助かったって人多いのに必要ないって根拠が弱過ぎるんだよね dobonくらい易しくかつdobon以上の情報量のサイトがあるなら必要ないって根拠になり得るけどさ stackoverflowやcodeplex出してドヤ顔とか噴飯ものなんですが
>dobon以上の情報量 ここ笑うところ?
WPFはwinformsと仕組みは基本的に全くの別物 そこの理解無くしてコピペサイト作っても無駄なんだけどね… 手順だけ見ても基本的な理解がないと触れない それがWPF
>>878 労力惜しむなというなら自作の言語でアプリ作れよ
お前が言っていることはこれぐらい幼稚なこと
>>893 文句言ってる人はコンテンツごと整理された逆引きが欲しいのだろう
これじゃ中途半端感待ったなしだと思うぞ
正直なところVB6.0から.NETに移行できたのはdobonさんのおかげ
そもそもMSから公式入門書が出ないのが不思議すぎる Forms(&VB)ならひと目でわかるシリーズが公式であるし、DB絡みで谷尻本とか沢山あるのにね
さっきからダダこねてる人は具体的に何がやりたいんだ? 参考として教えてほしい WPFとwinformsじゃ粒度が違うからその都度自分で解決していくしかないと思うんだけど
>>894 うん、ゴメン。全く何言っているか分からない。
だいいち日本語の書籍が実質エッセンシャルWPFしかないのもおかしい 公式の開発テクノロジー入門もSLの方が扱い大きくてWPFはさらっと流してるだけ 本気でWPFへの移行促したいなら公式本の充実があってしかるべきだが
dobnのWPF版はほしいな 最低限WinFormsでできることはやりたいし それがないと乗り換える気が起きない
dobonさんのサイトみたいなのがないとWPFは無かったものになりそう
全般 新しいウィンドウを表示する ウィンドウが一つしか表示されないようにする ウィンドウにOKボタン、キャンセルボタンを付ける 別のウィンドウのデータを取得、設定する ウィンドウを閉じる 条件によりウィンドウが閉じられないようにする ウィンドウの「閉じる」ボタンを無効にする ・・・・ 察するにこんな感じのコンテンツが欲しいんだろw
WinFormsでできないことが楽にできたら乗り換える人もいるだろうけど。 現状、なんだかんだで、WPFで書いてても、WinFormsが必要になったり。 Bindingの利点はわかるが、そこまで必要かって話でもある。 まあ、WPFは失敗で終わりでいいんじゃないの? 2、3、WPFで書いてみたけど、今後も使いたいとは思えなかった。
>>905 適当な例ですまんがToggleButtonの中にTextBlockとImageとTextBox混在させるとか
WinFormsで簡単にできるの?
適当過ぎ
>>908 それが簡単にできることよりリストビューにdisplayIndexが無いのが
致命的
ListBoxの選択された行の背景色を変えたいのに変えられない <Trigger Property="IsSelected" Value="True"> <Trigger.Setters> <Setter Property="Background" Value="Red"/> </Trigger.Setters> </Trigger> 変えられないのになぜこんなプロパティを用意しているの?ということが多すぎる しかもエラーもでないし でもフォーカスに下線を引くのは上のトリガーみたいなので簡単にできたのですごいと思った WinFormsだと座標決めてDrawで描画しなければならなくてコードが長いし どぼんコピペしなければ到底辿りつけなかった
>>908 それが簡単にできることが本当に必要かというと、そうでもなかったりする。
たしかにUIの柔軟性は認めるけど、Winformsのコントロールで最低限のことはできちゃうからね。
他と違うコントロール作りたい人にはいいのかもしれないが、
コントロールデザインの多様性の模索は、すでに失敗している。
WPFってどうでもいいことはできるけど、基本的なこと(WinFormsにある機能)がなかったりするから イラっとしちゃうよね もうWPFも切り捨てられちゃった技術だから今更言っても仕方がないけどね
>>909 すまんな、丁度今さっきこういうコードを書いたところだったんだよ。一般的では無い事は認めるw
>>912 > コントロールデザインの多様性の模索は、すでに失敗している
これどういう意味?基本パーツ以外不要とかいう不思議な意見?
基本パーツにすらたどり着けなかったのがWPF
DisplayIndexに関してはItemsControl.AlternationIndexを代用するって小技がある
>>913 WPFもSilverlightもWindowsStoreAppもみんな同じ技術の流れだしMSの世界では
モリモリ使われているって事だけど誰が切り捨てたの?
>>916 dobonさんのサイトが無いから使い方がわからんw
Xamlは終わってないけどWPFとSilverlightは終了したでしょ 現にVS2013でなんの追加も修正もされていない
それ言ったらWinFormsはどうなんだw
オイオイ・・・Silverlightが終了したのは確かだが、 VS2013でWPFデザイナは進歩してるだろ。 何も見えてないんだな。
WinFormsは完成されてるからなぁ
セットのBlendがWPFに対応していない時点でやる気ないとしか思えないがw
>>923 WPFのはVSに内蔵されただけでしょ。WindowsStoreApp推したいのはしょうがあるまいw
WPFのデザイナのプロパティって説明が一切ないよね WinFormsは↓に表示されるのに いちいちMSDN見ろってことか
Win7のメニューやボタンのぷっくり感が嫌いで仕方がなくWPFで作っている OS側でVSのようなDarkテーマにできればわざわざこんなことしなくて済むのに いつまでたっても背景真っ白、メニューぷっくりのままなのはなぜなんだ 何か問題あるのかね 多分そのせいでWPF上でのコントロールのカスタマイズに支障が出てるんだと思う
WPFだと自由なデザインが作れますっていうけど 丸いボタン作りたいなんて全然思わないのにこんな例ばっか パソコン使っているのにタッチパネル向けのスペースをやたら取るデザインなんてしたくないしな
>>925 あの程度の説明ならWPFデザイナでも別の場所に表示されるからMSDNを見る必要はない。
>>927 確かに悪い例ばっかりだな。
実際はレイアウトの自動計算によって不要な空白を無くしたりして
スペースの有効活用もできるんだがな。
WPFはジャップが大好きな方眼を使ったレイアウトができないからなあ Excel方眼紙と同じ感覚でレイアウトできるようになればジャップにバカウケ間違いなし
GridでColumnとRow沢山並べれば方眼レイアウトいけるよ
なぜ出来ないと思ってしまったのか
WinFormsならVSのデザイナの設定だけでできるでしょ
ListBoxの選択背景色の変更の仕方を教えてください
ControlTemplate
まとめないから同じ質問が何度も出てくる
上島のどうぞどうぞ状態を待ってるのか?
938 :
937 :2013/11/08(金) 23:26:00.95
誤爆です
どうしてここまでメソッド含めてガラっと変えたんだろ WPF使って欲しいならWinFormsと同じように使えないと人気出る訳ないんだけど・・・ WPFやろうとして技術調査から始まって結局最後MVVM諦めたってケースの現場結構多いんだよね チームで開発するわけだから俺は余裕とか意味ないっすよ
新人に教えたら2ヶ月でバッチリMVVMのアプリ書けるようになったぞ 諦めるとかどんだけ職場の技能レベル低いんだよ
進歩できない奴に対する縁切りのつもりだったんじゃないの ちょっと破壊力ありすぎたのが問題だね(笑)
むしろ新人の方がいいんじゃねえの 先入観もしがらみもベテランちゃんより少ないでしょ
2ヶ月の新人が作るようなアプリ大したことなくね?
そんな優秀な新人がMVVMで似たような画面量産するだけの仕事とか勿体無さすぎる
新人に教えられる自信ねーや。 .net自体をしっかり理解してる必要があるからなぁ。WPFの前に
>>943 dobon dobon言ってるのはそれ以前で挫折してるみたいだしなぁ
たった二か月の経験で綺麗なMやVMが設計できるとは思わん
あー、仮にdobonがそのレベルだとすると、応用が効かないから 答えそのものが書いてなきゃ作れないだろうなぁ・・・
上の方でListBoxItemの背景色を状態に応じて変える質問が出てたけど、 例えば、 - マウスオーバーで背景色を赤に変えるアニメーションを開始 - マウスオーバーでなくなったら元に戻すアニメーションを開始 - でもListBoxItemが選択されている時にはどっちのアニメーションも開始しない - ListBoxItemが選択された時、背景色を青に変えるアニメーションを開始 こういうわりとありがちな仕様ですら、結局XAMLだけじゃ実装できないんだな。 俺がWPFを好きになれない理由の1つがこういう中途半端なところ。
この程度できて当然でしょってのができない苛立ちWPF
WPFじゃないとできないデザインってのを見たことがない あったとしても使えない代物だろうな
FormでできないのってMacのようにウィンドウにドロップシャドウ付けるくらいかなw WPFだと驚くほど簡単だからあれだけはWPFすげぇー!って思った
>>954 サンプルコードください(dobon並の)
MultiTriggerとStoryboard使えばXAMLだけで出来るけど面倒くさいね
> ウィンドウにドロップシャドウ付ける それはWPFだから簡単にできるって類のものではない気が... それより、今じゃTVのUIでも使われているアルファ付きの背景のウィンドウが Windows Formでは難しかったわけだけど、それが簡単に出来るようになった点は やっと当たり前のことが出来るようになったかと思った。
>>954 いやできないでしょ。
XAMLだけでどうやっても条件で分岐する処理は実現できないし
>>958 もう答え書かれてるのに喋っても意味ないぞ
>>958 のXAML知識浅いのにDisってるの丸分かりになった感じ、きらいじゃないよ
961 :
デフォルトの名無しさん :2013/11/09(土) 01:05:31.91
俺は君みたいな幼稚臭い奴嫌いだけどね
このageちゃう感じも嫌いじゃないぞww
煽って答えを引き出そうとする精神も嫌いじゃない
仲いいね
C#関連で検索するときにdobonとatmarkitを除外するのは常識。
具体的に 教えてください
VSのDarkテーマのようなのがほしい 公式から出ているテーマはどれも背景明るすぎて使えない
叩かれるの承知で質問しやす ググってもこれっていうのが中々見つからないんですが FormのSystem.Drawing.GraphicsとBitmapの代替クラスって何か教えてください
あっというまに答えちゃうとwriteablebitmapとdrawingcontextかな
>>967 うわ、即レスありがとうございます
早速格闘します
973 :
デフォルトの名無しさん :2013/11/09(土) 23:13:45.95
>>972 ああ、そこを一発で探せればな(´・_・`)
System.Drawingを直接使えなくもない
>>972 public static BitmapSource CreateBitmap(
int width, int height, double dpi, Action<DrawingContext> render)
{
これクラス名がないんですがどうやって呼び出すんですか?
お前には無理だ諦めろ 普通のプログラミングの勉強をしてこい
977 :
デフォルトの名無しさん :2013/11/10(日) 20:47:20.59
>>975 確かにそれ見てそんなこと言ってるぐらいだったらWPFに手を出すべきじゃないと思う(´・ω・`)
カラー選択ダイアログってみなさんどうしてるんでしょうか?
>>976 初心者に毛の生えた程度のお前が偉そうに言ってるんじゃねーよ
>>977 するべきか否かを他人のお前にとやかく言われる筋合いはない
勝手に上司面してんじゃねーよカス
980 :
デフォルトの名無しさん :2013/11/10(日) 23:27:29.58
>>979 こんな無能な部下いらんわ(´・ω・`)
wpfの管轄じゃないからC#の質問スレで質問してきな
>>979 初心者に毛が生えてもいない奴に程度と言われてもな…
こういうコピペerでも給料もらってると思うと、胸が熱くなるな
ageで顔文字使う奴なんてリアルじゃ誰からも相手されてないんだろうなw
975は酷すぎだろ いくらなんでも C#やるレベルじゃない
>>986 最初はみんなそんなもんだろ
対して知能もないくせにただ長くやっているだけで偉そうにするなよ虫けら
>>986 お前じゃあ.NetFrameworkが用意しているクラス全部記憶してるのか?
何だよこの訳の分からない煽り合いは
どうしようもないレベルだったww
いいぞもっとやれ!ってスレ終わってまうがな
しょうもない煽り合いに笑ったw 争いは、同じレベルの者同士でしか発生しない!!
勉強してから、いかにアホなこと言ってたか顔真っ赤になるパターンw
反省するくらいならこんなこと言いませんし
ここままスレ消滅でいいよ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。