WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part21 [無断転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
Windows Presentation Frameworkについて語るスレ。
前スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part20
http://echo.2ch.net/test/read.cgi/tech/1458082648/
関連スレ
Windows 10 UWPアプリ開発
http://echo.2ch.net/test/read.cgi/tech/1440150886/
コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/ WPFがわかりにくい、面倒くさいって印象は、標準のフレームワークの機能不足もあるように思う。
TreeViewで選択されたTreeItemを取得するのに、単純にBindingできりゃよかったんだが
それができないんで面倒くさい添付プロパティ書く羽目になるとか。
MSにしてみれば「拡張する手は用意したから基本機能は多少不足しててもいいだろ」ってことかもしれんが。 >>829
ビジョンはあるでしょ
・業務アプリはWebへ完全移行
・ネイティブアプリはコンシューマ向けのWebサービスのクライアントだけが残るので、それに特化したシンプルなプラットフォーム(UWP)があればよい >>832
あなたのビジョンでしょw
Microsoftは何も言っていない。 Webで全部というのは無理がある
エクセルオンラインもオンライン会計もオンライン顧客管理も嫌がる
できるのはせいぜいメール仕訳とグループウェアで会議室予約
それに付随する週間売り上げレポート自動作成くらい
これらは集約された鯖に常時接続が効率いい
そのサーバーもCSVで出力してくれ、アトハエクセルデヤル、が常套句だったりする ビジョンつっても基本的にアレなんだけど、MFCからしてアレな出来だったし
WinFormsはDelphiからの輸入だし、なんつーか >>792
まじかよ
2段DGVとかサドパ買う金ないから勉強してるけど
リッチテキスト絶望なんか、、 TextBlockで事足りるから使うまでも無いかな RichTextBox 上の選択範囲に、TextSelection.ApplyPropertyValue() で FontStyle を適用した時の現象について
https://blogs.msdn.microsoft.com/japan_platform_sdkwindows_sdk_support_team_blog/2017/12/01/wpf_richtextbox_textselection_applypropertyvalue_fontstyle/
WPF の RichTextBox コントロール上の現在の選択範囲に対し、TextSelection.ApplyPropertyValue() で FontStyle を適用して修飾した場合について、二つの現象をご案内します。
・現象 1.
RichTextBox.Selection プロパティに FontStyles.Italic スタイルを適用しても、RichTextBox 上では Italic スタイルで描画されません。
・現象 2.
RichTextBox 内の文字列の最後尾にカーソルが存在する状態で、RichTextBox.Selection プロパティに FontStyles.Bold スタイルを適用した後、そのまま続けて全角文字を追記すると、追記した全角文字に Bold スタイルが適用されず、Bold スタイルで描画もされません。
対処方法
WPF の RichTextBox の代わりに、WinForm の RichTextBox や、Win32 の RichText または MFC の CRichEditCtrl のご利用をご検討ください。 >>840
現象1はWindows 10なら問題ない。 下記のhogehoge〜の部分に
TextTrimming="CharacterEllipsis"
の効果を適用したいのですが、可能なのでしょうか?宜しくお願い致します。
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" MinWidth="100" MaxWidth="200"/>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TreeView Grid.Column="0" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<TreeViewItem IsExpanded="True">
<TreeViewItem.Header>
<TextBlock Text="hogehogehogehoge" Margin="5,0" />
</TreeViewItem.Header>
<TreeViewItem>
<TreeViewItem.Header>
<TextBlock Text="hogehogehogehoge"
VerticalAlignment="Center"
TextTrimming="CharacterEllipsis" />
</TreeViewItem.Header>
</TreeViewItem>
</TreeViewItem>
</TreeView>
<GridSplitter Grid.Column="1"
Width="1" VerticalAlignment="Stretch" HorizontalAlignment="Center"
Background="DarkGray" />
<Label Grid.Column="2"
Background="LightGreen">R</Label>
</Grid> >>843
ありがとうございます!
結局一からテンプレートで作れということですね。 DataGridのセルで文字列を自動的に折り返しさせるにはどうすればいいですか? どうでもいいけど自己解決したときはその方法を書いておいてくれると同じ疑問を持った他の誰かが見たときに役立つよ WPF会社で使おうとしたけど情報少ないわ複雑だわで断念した
WinFormがやはりシンプルで良いな
特にビットマップの扱いがWPFは不便すぎ >>848
確かにシンプルなAPIじゃないね。
でも、画像を出力することが目的じゃない限りは使うことないから、あんまり気にしたことなかった。 ListBoxの行のマウスオーバーおよび選択時において、
背景の色を赤に変更したいのですが、どのようにしたら良いでしょうか?
下記のコードだと、フォントのサイズは変更されるのですが、
背景はデフォルトのままです。
以上よろしくお願いいたします。
<Grid Margin="5">
<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Red" />
<Setter Property="FontSize" Value="15" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Red" />
<Setter Property="FontSize" Value="15" />
</Trigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
<ListBoxItem Content="item1" />
<ListBoxItem Content="item2" />
<ListBoxItem Content="item3" />
</ListBox>
</Grid> >>850
コントロールテンプレートじゃなかろうか
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border Background="{TemplateBinding Background}">
<ContentPresenter />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Red" />
<Setter Property="FontSize" Value="15" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Red" />
<Setter Property="FontSize" Value="15" />
</Trigger>
</Style.Triggers>
</Style> >>851
回答ありがとうございます。
おっしゃる通りコントロールテンプレートでした。
ttps://blog.jsinh.in/change-background-color-of-selected-listboxitem-listbox-in-wpf/#.WijFpEpl-Ul
上記のページを参照したらクリックの挙動もうまくできました。 これからWPFを勉強しようと思うんだけど、どうやって学習すればいいの?
なんか情報がめっちゃ少ないんだけど >>853
あなたには向いてない、止めといた方がいいよ WPFじゃなくてもUWPから勉強しても問題なし。
基本となるデータバインディングやらXAMLやらMVVMの考え方はほぼ共通だし。
コントロールとかXAMLの表現能力とかは違うけど、大した差じゃない。 別にUWPの情報の方が多いとかは言ってないからね。 C#習得済みならWPFのサンプルがいいかもね
ちょっと目を通すといってもボリュームありぎて困るけどな
https://github.com/Microsoft/WPF-Samples >>854
向き不向き関係無く、WPFかUWPしか、これからは選択肢が無いとオモ。 WinFormは高dpiにも対応したし
過去の死産が沢山あるので永遠に不滅です >>861
他に選択肢が無いなら、向いてない>>853は失業だな WPFのRichTextBoxってFormの時より性能(できる内容等)良くなっていますか?
テキストの扱いが、フロードキュメントというものにアクセスしないといけないとか
仕様が変わっているので、学習コストに見合うものか見極めたいのです。 UWPのまともなチュートリアルがない
あっても実用レベルじゃない
画面の遷移とかアプリの状態とかその変化のさいのデータの保存とか共有とか
いろいろ知らないといけないことが多いが適切な学習方法がない
本屋に売ってる本もそういう所には触れてない
ボタンを押すと文字が変わるとかいうレベルじゃアプリは作れない
windowsストアアプリのころはまともなチュートリアルがあったのに >>866
画面遷移はprismのサンプル見るのが早い
てかコピペでも何とか成るぞ windowsストアアプリのころはこれでもかと言わんばかりの
かなりいい仕上がりの本が多かった
でもニッチな需要だったのであまり売れなかったみたいだ
UWPになってからいい本が出ないのはある意味windowsストアアプリのせい >>868
UWPに限らず、ここ数年まともな技術本は殆ど出版されてない
技術本の永久氷河期に突入したと思われます。 なんだ〜 ? いい本待ちって、どんだけ他力本願なんだよ?
英語サイト読め! アホ共が・・・ 最近はググるとstackoverflowが上位に来て邪魔だ
英語でえんえん議論して結果できませんでしたみたいな最後とか多くて邪魔
しかも内容が正確じゃない場合も多くて困る
昔はダイレクトにこうしろみたいなサイトが多くヒットした >>871
上人様、我々凡夫に良い英語サイトを教えてくだされ! >>872
Stack Overflowで延々と議論して結論が出てない事の方が稀だけどねぇ。。
MSDNフォーラムは延々と揚げ足取りが続いて何の答えも出てないことは多々あるが。
と言うかMSDNフォーラムは英語も日本語も箸にも棒にも掛からぬ え、あのうざいフォーラムモデレーターはもう検索しても出てこないの?
うそー >>874
俺も同じ印象持ってるわ
StackOverFlowはそのものズバリの回答にたどり着ける率がかなり高い >>868
普通、学習するのが後になればなるほど情報が増えて、
高速道路を走るようにあっという間にキャッチアップ出来るんだけど、
WPFは先人が切り開いた道が誰も通らないから荒れ果てて、自分で道を切り開かないといけないパターンか >>877
StackOverFlowは優秀な削除人が居て役に立たないゴミスレを抹消してるらしい xamlが障壁だろうね、htmlのようなものと言っているうちは標準で用意された動作しかできない
何でもできるのはすごいけど可読性が悪い XAML をいじるツールが HTMLの WYSIWYGツール程度しか容易されてないよね
細かくパラメータ指定はできるけど、XAMLの知識前提だし、
それならXAML直接いじったほうが早いという Blendでいじるのは限定的で大半はインテリセンスとエディットコンテニューでなんとかなってる感じ
つかエディットコンテニューもっと早くつければよかったのに それ以前にWPFやUWPの仕事なんてあるの? 俺っちのところはWinFormしかねぇぞ。 俺の知ってる普通は何を使うかなんて聞いてこないけどな、分からない任せるの一点張り
前任者が良くない理由で辞めていてその引き継ぎ案件なら指定あるかも知れん 俺はXAMLは良いと思うが、人それぞれだなぁ。
いちいちデザイナーでレイアウトしてプロパティペインでちまちま設定しなきゃならんFormsにはもう戻りたくない。 XAMLも全部ダメとは言ってない
エディタで書くことができるという方向性はたぶん間違ってなかった
問題はデザイナーを使うだけの層が置いてけぼりになった点だと思う
XAMLを勉強してWPFをマスターして次々とWPFでアプリ開発する開発者だけなら問題なかったが、
XAMLを勉強したいんじゃなくてアプリを作りたいって層は、
XAMLを習得するコストとWPFの将来性を比べて既知の WinForms に行ってしまうよね Formsと同じようにポトペタ開発だってできるだろ。それこそXAMLに直接触らなくても。
Formsと違うからハードルがあるってことならそりゃ当たり前w XAMLとWinForms、まるで真反対かのように言ってる人って使ったことないかまったく理解してないかだろうな。 WPFでXAMLなしでポトペタ開発できるっていうのは詭弁だろ
XAML書けない人はWPF使える人とは言えない つか、Gridレイアウトだけ覚えたらformレベルの用途なら後は何とか成るんだから
それぐらいは勉強しろよとは言いたいな
html知っていれば小一時間でなんとかなる代物だ Head FirstとMicroSoft公認の黒くて分厚い本がWPFにあればもっと普及したのではと思う gridってスプリッタ―使うのも一苦労なんだが
非常に使いにくい 原理主義でちょっとしたことを簡単に実現できなくしたのがいまいち普及しない理由だろ 大体はGird過激派グループとStackPanel同胞団のどちらかに属する
DockPanelは意外と出番がない、順序で配置変わる仕様が変態くさいし もうボケ老人の繰り言状態だけど、だからWPやXAMLの問題は
保守性の悪さであって必ずしも書きづらいことじゃないってw
見える化ってバズワードがちょっと前に流行ったけど、その観点では
WPFは20年前のVBより退化してる
Formだったら他人の書いたコードでもせいぜいドキュメントアウトラインで包含関係を確認して
あとはFormデザイナでコントロール選択してプロパティーグリッドみれば
一目瞭然でだいたいどうなってるかわかるけど、これがWPFじゅ全然そういう訳にいかない まーでもWinFormsで実現できる程度の見た目で良かったらWPFでもデザイナ使ってぽとペタでできるよね。
WPFとかだとItemTemplate使って出来るようなこととかやりだすと、追いづらくなるのは確かだけど、それはWinFormsだとオーナードローとかになってくるから、より追いにくくなりそう。 >>897
DockPanelは、Gridよりコード量が少ないので結構使うけど Pro WPF 4.5 in c# 押し(PDFもころがってるし) >>894
MSは普及させる気ないのかね?
赤字覚悟で本をたくさん出すべき WPFが普及しきる前にストアアプリやUWP推しにいっちゃったからねぇ。
ペゾルド本を出してくれていたらよかった。 最初で躓いたやつの愚痴ばっかりだな。
新しいことや、他のOSでの開発も出来ない連中ばったりだろう。 >>904
自分の事じゃないよ
初心者に対する窓口を広くないとWPFの未来はないって事
開発者の少ない環境なんて、あっという間に切り捨てられて終わる 最初って何にもなかったから脱落してもおかしくなかった
MVVMのフレームワークもない
WPF自体も段階を経てレベルアップしていった
今みたいに恵まれた環境じゃなかった >>905
WPFはもうMSが見捨てたから未来はないよ
UWPに注力 それよりも逆にUWPの未来が見えないんだが。Windows Mobile撤退したらもう存在意義ないんじゃね? >>906
WPFは本来の設計思想が全く理解されなかっただけで、フレームワークとしてはちゃんと出来上がってたんだぜ
お前らはRoutingCommandの利用シーンを自信を持って説明できるか? 出来てた割にはメモリリークとかメッセンジャーとかの問題で数年停滞してたじゃないか
ビヘイビアとかいろいろやってたじゃないか RoutingCommandって何だよ、RoutedCommandじゃねえの
最近はCaliburn.Microにしてるからコマンド書かずにメソッドだけで済ましてる mvvmはlistboxなどをバインディングで使うときなんか最悪だよ
選択がかわったことなどのVMがめんどくさい
その点Vのイベントは楽でいい WinFormsに続いてWPFもすでに飼い殺しモード
Mobileがポシャって将来の展望が見えないUWP
どうすんだろうねほんと >>911
そりゃそうだ
MVVMとか言われだしたのってWPFが世に出た後だぞ >>914
MS自身はElectron使ってるからね
今時Webできない奴なんか放っといても他所へは行けないんだからセールス的にはどうでもいいんだよ >>916
え、VisualStudio自体もElectronかい? >>914
そう、これだってのがないのがダメすぎるMicrosoft。
そのせいと、モバイル捨てたからエコシステム作れない。 Mobileは死んだけど、Hololensとか新機軸のデバイスの展開も見据えると
Win32だけのままじゃダメってのはわかるし個人的にUWPはUWPで続けてくれて良いんだけどね
Desktopをおざなりにするどころかユーザーや開発者に劣化環境を押し付けてくるのが最高にうんこ 大多数の人がしたいと思ってることが簡単にできないとダメ
画像の表示一つで首かしげるようなものじゃダメ、普及しない MVVMで組まなきゃ駄目って空気を醸し出してしまったのが敗因かな。 もしかしてWinFormの地位が確固たるものになった? WPFとUWPのおかげで・・・ >>903
普及しきるというか普及する気配が最初から全くなく今に至る。
PGの嗅覚をなめてはいけない。 >>904
ただの無能の愚痴ならいいんだが事実、ゴミだったからな。 レス数が900を超えています。1000を超えると表示できなくなるよ。