X



WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part21 [無断転載禁止]©2ch.net

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん
垢版 |
2017/05/09(火) 09:09:13.94ID:KhhA22kJ
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/
0831デフォルトの名無しさん
垢版 |
2017/11/24(金) 11:05:45.58ID:mPUfH2u/
WPFがわかりにくい、面倒くさいって印象は、標準のフレームワークの機能不足もあるように思う。
TreeViewで選択されたTreeItemを取得するのに、単純にBindingできりゃよかったんだが
それができないんで面倒くさい添付プロパティ書く羽目になるとか。
MSにしてみれば「拡張する手は用意したから基本機能は多少不足しててもいいだろ」ってことかもしれんが。
0832デフォルトの名無しさん
垢版 |
2017/11/24(金) 11:46:48.54ID:1+0DqtV5
>>829
ビジョンはあるでしょ
・業務アプリはWebへ完全移行
・ネイティブアプリはコンシューマ向けのWebサービスのクライアントだけが残るので、それに特化したシンプルなプラットフォーム(UWP)があればよい
0834デフォルトの名無しさん
垢版 |
2017/11/24(金) 12:01:59.99ID:zpTIVf12
Webで全部というのは無理がある
エクセルオンラインもオンライン会計もオンライン顧客管理も嫌がる
できるのはせいぜいメール仕訳とグループウェアで会議室予約
それに付随する週間売り上げレポート自動作成くらい
これらは集約された鯖に常時接続が効率いい
そのサーバーもCSVで出力してくれ、アトハエクセルデヤル、が常套句だったりする
0835デフォルトの名無しさん
垢版 |
2017/11/24(金) 21:38:21.84ID:tVS6N6Kc
ビジョンつっても基本的にアレなんだけど、MFCからしてアレな出来だったし
WinFormsはDelphiからの輸入だし、なんつーか
0837デフォルトの名無しさん
垢版 |
2017/11/27(月) 00:52:00.43ID:J+H360A5
>>792
まじかよ
2段DGVとかサドパ買う金ないから勉強してるけど
リッチテキスト絶望なんか、、
0840デフォルトの名無しさん
垢版 |
2017/12/01(金) 21:30:59.69ID:TIs6YR+X
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 のご利用をご検討ください。
0842デフォルトの名無しさん
垢版 |
2017/12/04(月) 17:26:53.28ID:jUCJdOso
下記の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>
0844デフォルトの名無しさん
垢版 |
2017/12/05(火) 10:07:40.24ID:2ID5QeqJ
>>843
ありがとうございます!
結局一からテンプレートで作れということですね。
0845デフォルトの名無しさん
垢版 |
2017/12/06(水) 12:33:29.17ID:zkLW2Dlw
DataGridのセルで文字列を自動的に折り返しさせるにはどうすればいいですか?
0847デフォルトの名無しさん
垢版 |
2017/12/06(水) 14:01:58.75ID:uXe6tuIh
どうでもいいけど自己解決したときはその方法を書いておいてくれると同じ疑問を持った他の誰かが見たときに役立つよ
0848デフォルトの名無しさん
垢版 |
2017/12/07(木) 02:00:54.89ID:CphyNnDm
WPF会社で使おうとしたけど情報少ないわ複雑だわで断念した
WinFormがやはりシンプルで良いな
特にビットマップの扱いがWPFは不便すぎ
0849デフォルトの名無しさん
垢版 |
2017/12/07(木) 08:12:13.45ID:PjTiKcum
>>848
確かにシンプルなAPIじゃないね。
でも、画像を出力することが目的じゃない限りは使うことないから、あんまり気にしたことなかった。
0850デフォルトの名無しさん
垢版 |
2017/12/07(木) 10:16:38.26ID:vSHyWsbi
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>
0851デフォルトの名無しさん
垢版 |
2017/12/07(木) 12:11:22.31ID:W1xQHq7p
>>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>
0852デフォルトの名無しさん
垢版 |
2017/12/07(木) 13:40:41.72ID:vSHyWsbi
>>851
回答ありがとうございます。
おっしゃる通りコントロールテンプレートでした。

ttps://blog.jsinh.in/change-background-color-of-selected-listboxitem-listbox-in-wpf/#.WijFpEpl-Ul

上記のページを参照したらクリックの挙動もうまくできました。
0853デフォルトの名無しさん
垢版 |
2017/12/07(木) 15:44:08.93ID:IRuA+lX8
これからWPFを勉強しようと思うんだけど、どうやって学習すればいいの?

なんか情報がめっちゃ少ないんだけど
0858デフォルトの名無しさん
垢版 |
2017/12/07(木) 15:59:12.70ID:nZL2FdH7
WPFじゃなくてもUWPから勉強しても問題なし。
基本となるデータバインディングやらXAMLやらMVVMの考え方はほぼ共通だし。
コントロールとかXAMLの表現能力とかは違うけど、大した差じゃない。
0865デフォルトの名無しさん
垢版 |
2017/12/07(木) 18:08:25.01ID:RWj85r3T
WPFのRichTextBoxってFormの時より性能(できる内容等)良くなっていますか?
テキストの扱いが、フロードキュメントというものにアクセスしないといけないとか
仕様が変わっているので、学習コストに見合うものか見極めたいのです。
0866デフォルトの名無しさん
垢版 |
2017/12/07(木) 18:31:51.66ID:aKBXGesU
UWPのまともなチュートリアルがない
あっても実用レベルじゃない
画面の遷移とかアプリの状態とかその変化のさいのデータの保存とか共有とか
いろいろ知らないといけないことが多いが適切な学習方法がない

本屋に売ってる本もそういう所には触れてない
ボタンを押すと文字が変わるとかいうレベルじゃアプリは作れない

windowsストアアプリのころはまともなチュートリアルがあったのに
0868デフォルトの名無しさん
垢版 |
2017/12/07(木) 19:30:04.21ID:70KcxBzP
windowsストアアプリのころはこれでもかと言わんばかりの
かなりいい仕上がりの本が多かった
でもニッチな需要だったのであまり売れなかったみたいだ

UWPになってからいい本が出ないのはある意味windowsストアアプリのせい
0869デフォルトの名無しさん
垢版 |
2017/12/07(木) 19:41:35.48ID:qnTgxbKH
>>868
UWPに限らず、ここ数年まともな技術本は殆ど出版されてない
技術本の永久氷河期に突入したと思われます。
0870デフォルトの名無しさん
垢版 |
2017/12/07(木) 19:47:33.04ID:70KcxBzP
図書館にC#の絵本が入ってて泣いた
0871デフォルトの名無しさん
垢版 |
2017/12/07(木) 19:48:21.41ID:iSZRC5ge
なんだ〜 ? いい本待ちって、どんだけ他力本願なんだよ?
英語サイト読め! アホ共が・・・
0872デフォルトの名無しさん
垢版 |
2017/12/07(木) 19:51:54.46ID:70KcxBzP
最近はググるとstackoverflowが上位に来て邪魔だ
英語でえんえん議論して結果できませんでしたみたいな最後とか多くて邪魔
しかも内容が正確じゃない場合も多くて困る

昔はダイレクトにこうしろみたいなサイトが多くヒットした
0874デフォルトの名無しさん
垢版 |
2017/12/07(木) 19:57:46.70ID:qnTgxbKH
>>872
Stack Overflowで延々と議論して結論が出てない事の方が稀だけどねぇ。。
MSDNフォーラムは延々と揚げ足取りが続いて何の答えも出てないことは多々あるが。
と言うかMSDNフォーラムは英語も日本語も箸にも棒にも掛からぬ
0876デフォルトの名無しさん
垢版 |
2017/12/07(木) 22:04:29.06ID:7HwoQbsI
え、あのうざいフォーラムモデレーターはもう検索しても出てこないの?
うそー
0877デフォルトの名無しさん
垢版 |
2017/12/07(木) 23:18:36.91ID:gBefvYul
>>874
俺も同じ印象持ってるわ
StackOverFlowはそのものズバリの回答にたどり着ける率がかなり高い
0878デフォルトの名無しさん
垢版 |
2017/12/08(金) 06:41:55.51ID:6V+obqgF
>>868
普通、学習するのが後になればなるほど情報が増えて、
高速道路を走るようにあっという間にキャッチアップ出来るんだけど、
WPFは先人が切り開いた道が誰も通らないから荒れ果てて、自分で道を切り開かないといけないパターンか
0880デフォルトの名無しさん
垢版 |
2017/12/08(金) 08:16:39.79ID:qCpKpTuV
xamlが障壁だろうね、htmlのようなものと言っているうちは標準で用意された動作しかできない
何でもできるのはすごいけど可読性が悪い
0881デフォルトの名無しさん
垢版 |
2017/12/08(金) 10:15:25.17ID:tA4Nn7ut
XAML をいじるツールが HTMLの WYSIWYGツール程度しか容易されてないよね
細かくパラメータ指定はできるけど、XAMLの知識前提だし、
それならXAML直接いじったほうが早いという
0882デフォルトの名無しさん
垢版 |
2017/12/08(金) 12:23:32.06ID:HAB7Tinf
xamarin formsのビュワーはクソすぎる
0883デフォルトの名無しさん
垢版 |
2017/12/08(金) 13:12:00.95ID:qCpKpTuV
Blendでいじるのは限定的で大半はインテリセンスとエディットコンテニューでなんとかなってる感じ
つかエディットコンテニューもっと早くつければよかったのに
0885デフォルトの名無しさん
垢版 |
2017/12/08(金) 14:46:00.53ID:57iib+8F
それ以前にWPFやUWPの仕事なんてあるの? 俺っちのところはWinFormしかねぇぞ。
0887デフォルトの名無しさん
垢版 |
2017/12/08(金) 17:00:29.61ID:qCpKpTuV
俺の知ってる普通は何を使うかなんて聞いてこないけどな、分からない任せるの一点張り
前任者が良くない理由で辞めていてその引き継ぎ案件なら指定あるかも知れん
0888デフォルトの名無しさん
垢版 |
2017/12/08(金) 21:27:54.44ID:6Wxgyjtw
俺はXAMLは良いと思うが、人それぞれだなぁ。
いちいちデザイナーでレイアウトしてプロパティペインでちまちま設定しなきゃならんFormsにはもう戻りたくない。
0889デフォルトの名無しさん
垢版 |
2017/12/08(金) 22:42:48.69ID:JqV72I9F
XAMLも全部ダメとは言ってない

エディタで書くことができるという方向性はたぶん間違ってなかった
問題はデザイナーを使うだけの層が置いてけぼりになった点だと思う

XAMLを勉強してWPFをマスターして次々とWPFでアプリ開発する開発者だけなら問題なかったが、
XAMLを勉強したいんじゃなくてアプリを作りたいって層は、
XAMLを習得するコストとWPFの将来性を比べて既知の WinForms に行ってしまうよね
0890デフォルトの名無しさん
垢版 |
2017/12/08(金) 23:08:09.57ID:6Wxgyjtw
Formsと同じようにポトペタ開発だってできるだろ。それこそXAMLに直接触らなくても。
Formsと違うからハードルがあるってことならそりゃ当たり前w
0891デフォルトの名無しさん
垢版 |
2017/12/08(金) 23:24:02.04ID:0zCKXZ4S
XAMLとWinForms、まるで真反対かのように言ってる人って使ったことないかまったく理解してないかだろうな。
0892デフォルトの名無しさん
垢版 |
2017/12/08(金) 23:33:23.82ID:JqV72I9F
WPFでXAMLなしでポトペタ開発できるっていうのは詭弁だろ
XAML書けない人はWPF使える人とは言えない
0893デフォルトの名無しさん
垢版 |
2017/12/09(土) 00:06:52.81ID:fO0VVXq7
つか、Gridレイアウトだけ覚えたらformレベルの用途なら後は何とか成るんだから
それぐらいは勉強しろよとは言いたいな
html知っていれば小一時間でなんとかなる代物だ
0894デフォルトの名無しさん
垢版 |
2017/12/09(土) 00:16:56.45ID:HnWyWSqq
Head FirstとMicroSoft公認の黒くて分厚い本がWPFにあればもっと普及したのではと思う
0895デフォルトの名無しさん
垢版 |
2017/12/09(土) 00:22:36.81ID:y4uhn7j8
gridってスプリッタ―使うのも一苦労なんだが
非常に使いにくい
0896デフォルトの名無しさん
垢版 |
2017/12/09(土) 00:24:48.22ID:sjZAAH/D
原理主義でちょっとしたことを簡単に実現できなくしたのがいまいち普及しない理由だろ
0897デフォルトの名無しさん
垢版 |
2017/12/09(土) 00:31:27.04ID:P59xwzO1
大体はGird過激派グループとStackPanel同胞団のどちらかに属する
DockPanelは意外と出番がない、順序で配置変わる仕様が変態くさいし
0898デフォルトの名無しさん
垢版 |
2017/12/09(土) 00:51:13.59ID:YSr7xyeP
もうボケ老人の繰り言状態だけど、だからWPやXAMLの問題は
保守性の悪さであって必ずしも書きづらいことじゃないってw

見える化ってバズワードがちょっと前に流行ったけど、その観点では
WPFは20年前のVBより退化してる

Formだったら他人の書いたコードでもせいぜいドキュメントアウトラインで包含関係を確認して
あとはFormデザイナでコントロール選択してプロパティーグリッドみれば
一目瞭然でだいたいどうなってるかわかるけど、これがWPFじゅ全然そういう訳にいかない
0899デフォルトの名無しさん
垢版 |
2017/12/09(土) 01:31:47.76ID:0TYlSAt9
まーでもWinFormsで実現できる程度の見た目で良かったらWPFでもデザイナ使ってぽとペタでできるよね。

WPFとかだとItemTemplate使って出来るようなこととかやりだすと、追いづらくなるのは確かだけど、それはWinFormsだとオーナードローとかになってくるから、より追いにくくなりそう。
0903デフォルトの名無しさん
垢版 |
2017/12/09(土) 08:35:35.94ID:LNYXpqZE
WPFが普及しきる前にストアアプリやUWP推しにいっちゃったからねぇ。
ペゾルド本を出してくれていたらよかった。
0904デフォルトの名無しさん
垢版 |
2017/12/09(土) 10:32:33.70ID:pqfn8pko
最初で躓いたやつの愚痴ばっかりだな。
新しいことや、他のOSでの開発も出来ない連中ばったりだろう。
0905デフォルトの名無しさん
垢版 |
2017/12/09(土) 10:35:10.19ID:D+7i0ltG
>>904
自分の事じゃないよ

初心者に対する窓口を広くないとWPFの未来はないって事
開発者の少ない環境なんて、あっという間に切り捨てられて終わる
0906デフォルトの名無しさん
垢版 |
2017/12/09(土) 10:35:49.75ID:0SdWVhUU
最初って何にもなかったから脱落してもおかしくなかった
MVVMのフレームワークもない
WPF自体も段階を経てレベルアップしていった
今みたいに恵まれた環境じゃなかった
0907デフォルトの名無しさん
垢版 |
2017/12/09(土) 10:37:26.13ID:0SdWVhUU
>>905
WPFはもうMSが見捨てたから未来はないよ
UWPに注力
0909デフォルトの名無しさん
垢版 |
2017/12/09(土) 10:44:59.50ID:LNYXpqZE
それよりも逆にUWPの未来が見えないんだが。Windows Mobile撤退したらもう存在意義ないんじゃね?
0910デフォルトの名無しさん
垢版 |
2017/12/09(土) 10:55:42.98ID:BBiO47QN
>>906
WPFは本来の設計思想が全く理解されなかっただけで、フレームワークとしてはちゃんと出来上がってたんだぜ
お前らはRoutingCommandの利用シーンを自信を持って説明できるか?
0911デフォルトの名無しさん
垢版 |
2017/12/09(土) 10:57:32.75ID:0SdWVhUU
出来てた割にはメモリリークとかメッセンジャーとかの問題で数年停滞してたじゃないか
ビヘイビアとかいろいろやってたじゃないか
0912デフォルトの名無しさん
垢版 |
2017/12/09(土) 11:01:07.31ID:P59xwzO1
RoutingCommandって何だよ、RoutedCommandじゃねえの
最近はCaliburn.Microにしてるからコマンド書かずにメソッドだけで済ましてる
0913デフォルトの名無しさん
垢版 |
2017/12/09(土) 11:05:53.50ID:0SdWVhUU
mvvmはlistboxなどをバインディングで使うときなんか最悪だよ
選択がかわったことなどのVMがめんどくさい

その点Vのイベントは楽でいい
0914デフォルトの名無しさん
垢版 |
2017/12/09(土) 11:06:28.29ID:3CrpDS5s
WinFormsに続いてWPFもすでに飼い殺しモード
Mobileがポシャって将来の展望が見えないUWP
どうすんだろうねほんと
0916デフォルトの名無しさん
垢版 |
2017/12/09(土) 11:18:55.23ID:BBiO47QN
>>914
MS自身はElectron使ってるからね
今時Webできない奴なんか放っといても他所へは行けないんだからセールス的にはどうでもいいんだよ
0918デフォルトの名無しさん
垢版 |
2017/12/09(土) 11:43:10.65ID:pqfn8pko
>>914
そう、これだってのがないのがダメすぎるMicrosoft。
そのせいと、モバイル捨てたからエコシステム作れない。
0919デフォルトの名無しさん
垢版 |
2017/12/09(土) 12:11:43.99ID:7Yf8j8jw
Mobileは死んだけど、Hololensとか新機軸のデバイスの展開も見据えると
Win32だけのままじゃダメってのはわかるし個人的にUWPはUWPで続けてくれて良いんだけどね

Desktopをおざなりにするどころかユーザーや開発者に劣化環境を押し付けてくるのが最高にうんこ
0920デフォルトの名無しさん
垢版 |
2017/12/09(土) 12:15:01.89ID:0SdWVhUU
Hololensなんてごみじゃん
ただの流向
0921デフォルトの名無しさん
垢版 |
2017/12/09(土) 14:28:35.64ID:4L36y9lr
WPF版のペッツォルト本なかったっか?
0922デフォルトの名無しさん
垢版 |
2017/12/09(土) 14:56:59.28ID:sjZAAH/D
大多数の人がしたいと思ってることが簡単にできないとダメ
画像の表示一つで首かしげるようなものじゃダメ、普及しない
0925デフォルトの名無しさん
垢版 |
2017/12/09(土) 15:21:58.42ID:H2sqAc93
もしかしてWinFormの地位が確固たるものになった? WPFとUWPのおかげで・・・
0928デフォルトの名無しさん
垢版 |
2017/12/09(土) 20:38:16.72ID:ziJNlv0p
>>903
普及しきるというか普及する気配が最初から全くなく今に至る。
PGの嗅覚をなめてはいけない。
レス数が900を超えています。1000を超えると表示できなくなるよ。

ニューススポーツなんでも実況