WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part20©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net
2016/03/16(水) 07:57:28.84ID:tj30pZlh前スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part19
http://echo.2ch.net/test/read.cgi/tech/1428631142/
関連スレ
Windows 10 UWPアプリ開発
http://echo.2ch.net/test/read.cgi/tech/1440150886/
コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
0478デフォルトの名無しさん
2017/03/06(月) 23:11:49.34ID:0xhSbt3G意味わからん
普通に使ってるんだが
0479デフォルトの名無しさん
2017/03/06(月) 23:14:52.54ID:YWYjItmT速度以上にバインドミスるとコンパイルエラーだもんな
0480デフォルトの名無しさん
2017/03/07(火) 00:01:21.16ID:TfAVO8sBする。例えば、bool?とboolのバインドとかでも。
0481デフォルトの名無しさん
2017/03/07(火) 00:03:05.81ID:TfAVO8sB0482デフォルトの名無しさん
2017/03/07(火) 00:06:09.58ID:hjB1k2kx一度システムで採用したらそのシステムはずっと保守しなきゃならないという常識を理解できない馬鹿去れ。
頭が悪すぎる。
0483デフォルトの名無しさん
2017/03/07(火) 00:12:01.44ID:04iMZGznうん。
そんな事を理由にWinFormsのWPFに対する優位性を
語ってると思ってるなら本当に救いようのない馬鹿だね。
けなすにしても技術的な観点でやれよな。
0484デフォルトの名無しさん
2017/03/07(火) 07:55:16.66ID:s+clSvSFFormデザイナーの出力よりよっぽど手修正しやすいと思うんだが。
最近、XAMLはほとんど手書きだわ。
0485デフォルトの名無しさん
2017/03/07(火) 13:08:10.14ID:tJwZZR52自分好みに一定の法則で決まった順番に属性が定義されるようにとか、
改行、インデントしてくれるチョンプロ作って整形したりしてるなぁ
全部決まった位置にあるとバインドとか直しやすい
0486デフォルトの名無しさん
2017/03/07(火) 14:07:36.05ID:Y1J0kN3qこれからコレクションのインデックスを取得する方法ってないですか?
((ListViewItem)sender).Contentで中身にはアクセスできて目的自体は達成できるのですが、
いちいち中身を個別にいじるのが面倒なので、コレクションのItemごとさくっと差し替えてしまいたいんですけど。
0487デフォルトの名無しさん
2017/03/07(火) 15:32:17.38ID:04iMZGznParentからSelectedIndex取るんじゃ駄目なの?
そもそも俺だったらCommandをトリガーにして
bindingしたSelectedIndex拾うけど。
0488デフォルトの名無しさん
2017/03/07(火) 19:25:20.93ID:Y1J0kN3qコマンドでの対応方については後で調べてみます。
正直よく分からないので、ListView.ItemContainerGenerator.IndexFromContainerにて取得をしました
ただ、これはリストビュー内でのインデックスなので、ItemsSourceにセットしたコレクションのインデックスと
完全に一致する保証があるのか今ひとつ調べ切れてないのが若干不安です。
0489デフォルトの名無しさん
2017/03/07(火) 19:41:58.76ID:TfAVO8sBいま、ちょうどListViewいじってから試してみたけど、senderにListViewItem入ってないぞ。
senderに入ってるのはListView
0490デフォルトの名無しさん
2017/03/08(水) 08:14:30.09ID:5RScNi3gItemContainorStyleで、ListBoxItemのスタイル定義をして、そこでEventsetterつかってdoubleclickハンドリングするんだが
手順間違っていないか?
0491デフォルトの名無しさん
2017/03/08(水) 10:36:35.68ID:nni1QRG8リストビューがあるフォームのWindow.Resourcesに
<Style TargetType="{x:Type ListViewItem}" x:Key="listViewStyle">
<EventSetter Event="MouseDoubleClick" Handler="listViewItem_MouseDoubleClick" />
</Style>
この定義をいれればアイテムのダブルクリックが取れるんです
0492デフォルトの名無しさん
2017/03/08(水) 18:40:52.11ID:ZHaT77dwそれはListViewじゃなくてListViewItemなんだ
0493デフォルトの名無しさん
2017/03/08(水) 19:54:30.43ID:EmMhTgpFBindingすると不要なデータが表示されてしまいます。
以下のように表示させるにはどこを修正すれば宜しいでしょうか?
□20[\n]□30[\n]□40[\n]□50[\n]
public MainWindow()
{
InitializeComponent();
var items = new[]
{
new { Text = "a", X = 20},
new { Text = "b", X = 30},
new { Text = "c", X = 40},
new { Text = "d", X = 50},
};
this.DataContext = items;
}
続く・・
0494493
2017/03/08(水) 19:54:51.48ID:EmMhTgpF<StackPanel>
<ListBox Name="listBox" SelectionMode="Multiple" ItemsSource="{Binding}">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<StackPanel>
<CheckBox Content="{TemplateBinding Content}" IsChecked="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(Selector.IsSelected)}"/>
<TextBlock Text="{Binding X}"/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Label Content="{Binding X}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
0495デフォルトの名無しさん
2017/03/08(水) 20:14:12.46ID:oMC/vsfw不要なデータって何?
ItemTemplateにチェックボックス置くだけじゃ駄目なん?
0496デフォルトの名無しさん
2017/03/11(土) 09:12:33.78ID:GWCkdS6PForm全盛の時代にはコーディングしていたんだが、しばらく遠ざかっていた。
浦島状態でXAML使い始めたが、駄目だ。どうしても合わない。
0497デフォルトの名無しさん
2017/03/11(土) 09:13:57.24ID:U5rDSQzZ0498デフォルトの名無しさん
2017/03/11(土) 09:31:09.51ID:qRrPVhhXXAMLと比較するならDesigner.csじゃないの?
コードエディタで編集できるようになったのは大きな利点だと思うんだがなぁ。
0499デフォルトの名無しさん
2017/03/11(土) 09:49:31.21ID:GWCkdS6PここでFormに帰るのは何か負けたような気がする。
Qt における QML も同じようなもん?
Java のFXにも xml っぽいなんかがあったような気がする。
時代の流れでこういうのが流行りで、ついていけないのがなんかしゃくにさわる。
0500デフォルトの名無しさん
2017/03/11(土) 09:54:51.75ID:yRgxDcvf0501デフォルトの名無しさん
2017/03/11(土) 09:57:55.69ID:Z8Bo3W36流行りはもうとっくに終わったよ
結局UI記述言語の標準を勝ち取ったのはHTML/CSS
0502デフォルトの名無しさん
2017/03/11(土) 10:02:25.56ID:GWCkdS6Pなら、何、手だしたらいいねん?という話になる。
0503デフォルトの名無しさん
2017/03/11(土) 10:15:13.79ID:yRgxDcvf0504デフォルトの名無しさん
2017/03/11(土) 11:35:06.52ID:GkG5e6vh0505デフォルトの名無しさん
2017/03/11(土) 13:41:31.39ID:pr/uogYf0506デフォルトの名無しさん
2017/03/11(土) 13:45:58.50ID:Z8Bo3W36どうせugaya系に騙されてビヘイビアとか駆使したクソ複雑なXAML書いてるんだろ
ああいうのは設定ファイルプログラミングといって、典型的なアンチパターン
0507デフォルトの名無しさん
2017/03/11(土) 14:10:33.90ID:WonQCVwDエラソウ
0508デフォルトの名無しさん
2017/03/11(土) 14:20:06.33ID:xnjsjIDYUWPは覇権取れそうですか…?
0509デフォルトの名無しさん
2017/03/11(土) 14:33:55.47ID:xnjsjIDYDesktop App Converterみたいな苦し紛れの黒魔法に頼らないといけないくらい終わってますもんね
0510デフォルトの名無しさん
2017/03/11(土) 22:59:28.63ID:mXVRljn+今の時代はGUIでペタペタコントロール貼ってプロパティいくつか好きなように設定して終わりだよ。
0511デフォルトの名無しさん
2017/03/11(土) 23:09:02.36ID:15EAzLR80512デフォルトの名無しさん
2017/03/11(土) 23:19:35.19ID:XiqcTlhzどっちも出来るのに。
0513デフォルトの名無しさん
2017/03/12(日) 01:07:36.18ID:IznYQJyx.NETはJavaやPHPより仕事少ない上に
妙な案件(このスレみたいなの)来るから
手広くやっとくべし。
苦手なら諦メロン。
0514デフォルトの名無しさん
2017/03/12(日) 08:57:42.64ID:7YHFE7dQ一緒だろう。XAMLだけをクソだと言うのはよく分からない。
単に自分の習熟度が低いものを貶してる出来ない子にしか見えない。
>>510
VB6とかDelphiとかが流行ったときと同じ事言ってるな
HTMLとかも結局手書きになるしな
0515デフォルトの名無しさん
2017/03/12(日) 14:10:07.96ID:KyxXeMHg複雑なUIはカスタムコントロールやユーザーコントロールを使って
ブラックボックス化するWindows Formの方式の方が少なくとも
見通しはいいな。
XAMLはオブジェクト指向以前のカオスの世界に退化したようにも見える。
0516デフォルトの名無しさん
2017/03/12(日) 14:46:39.16ID:O3/Gyy1q0517デフォルトの名無しさん
2017/03/12(日) 15:15:15.07ID:1AEjxjTb0518デフォルトの名無しさん
2017/03/12(日) 15:56:06.11ID:ET8XfTu00519デフォルトの名無しさん
2017/03/12(日) 16:07:40.26ID:6SjJ3Onc・UIのレイアウトは楽(装飾は含まない)
・Bindingが楽
の2点だけ
あとメリットは対象が局所的だわ
HiDPIにしてもWindowsでHiDPIデバイス使ってるのって数%らしいじゃん
Mac並みの特殊環境だよな
考慮外でいいよそんな奴ら
0520デフォルトの名無しさん
2017/03/12(日) 16:59:10.65ID:sx+F4mFhという話題が延々と続いてるのは何だろな。
別にWPFを何がなんでも使えと主張してる人見た事無いし
わざわざWPFのスレに出張してきてWinForms推しする奴
何かメリットでもあるのかね。
どうせWPF使ってる人は今更カビの生えたWinFormsに
戻る気なんてサラサラ無いだろうしWinForms派の人も
勉強して使いこなそうとなんか思わないだろうしずっと
平行線に決まってるのにな。
0521デフォルトの名無しさん
2017/03/12(日) 17:17:42.83ID:KyxXeMHgあと、WPF使ってる人はWindows Formを使わないって話は嘘。
前にも出てるけどWPFのグラフィックは糞遅いから特定の用途ではまったく使い物にならない。
10年たっても移行が進まない理由の一つはそこだよね。
0522デフォルトの名無しさん
2017/03/12(日) 17:32:53.44ID:ornod9yC0523デフォルトの名無しさん
2017/03/12(日) 17:54:29.83ID:1AEjxjTbMacディスってんのかメーン?
0524デフォルトの名無しさん
2017/03/12(日) 17:57:47.21ID:m47jO4XA>Mac並みの特殊環境だよな
そういう「少数の特殊環境使ってる奴」に限って、やたらと声が大きいのが世の常でな
0525デフォルトの名無しさん
2017/03/12(日) 18:03:47.38ID:oGE6g3Jz> そういう「少数の特殊環境使ってる奴」に限って、やたらと声が大きいのが世の常でな
「少数の特殊環境使ってる奴」が集まるスレでそれを言うか
0526デフォルトの名無しさん
2017/03/12(日) 18:33:19.17ID:sx+F4mFhそうかね?二言目にはWinFormsって出てきてる気がするけど
で、特定の用途ってどんな用途?
WPFが遅いのは確かだだし何も考えずに組むとオーバーヘッド
凄くなって悲惨なことになるけど、モジュールの階層構造を
理解して、コンポーネントの造りさえ工夫すればそこそこ
ヘビーな用途でもなんとかなっちゃってるけどな
勿論C++でゴリゴリ書いた方がヌルサクなのは確かだけどさ
0527デフォルトの名無しさん
2017/03/12(日) 19:42:18.11ID:XDD/z7Um理解して、コンポーネントの造りさえ工夫すれば
それがめんどくさすぎるんだよ
0528デフォルトの名無しさん
2017/03/12(日) 22:22:32.34ID:xAZ+KqNV静的な画像じゃなくてプログラムである程度の数の図形を描画するような用途だね。
どんな手段使っても本当に遅くて使い物にならない。
嘘だと思うなら、例えば音声入力をオシロスコープ状にリアルタイムで表示するような
コードを描いてみればすぐわかる。
こんなのPentium2の時代にVB6でも実現できたが、WPFなら今時のハイスペックPC使っても
まともなものは作れない。
0529デフォルトの名無しさん
2017/03/12(日) 22:26:49.91ID:Jf5ml5tGMS-C Ver5で。
0530デフォルトの名無しさん
2017/03/12(日) 23:15:31.83ID:CdRkjVAHいくらなんでもそれくらいは余裕じゃない?
0531デフォルトの名無しさん
2017/03/12(日) 23:18:57.66ID:O3/Gyy1qデフォルトのグラフックスにはインタラクティブで高機能なものをお手軽に実現できる
保持モードを採用したんだろうな。
まぁ、ついてこれない人はそのままForms使い続けてりゃいいわけだが、WPFの
失敗を願う暗い情熱に囚われたような人はなんだかなぁ。
0532デフォルトの名無しさん
2017/03/12(日) 23:21:16.45ID:tHLqC2EAまさにこれやろうとして大いにハマったw
工夫して多少マシになったけど、表示する波形次第ではめちゃくちゃ重くなる。
SciChartみたいな優秀なチャートコントロールを購入すれば解決できるみたいだけどね。
WPF Charting Performance Comparisons (the Battle Continues)
http://blog.scottlogic.com/2012/04/24/wpf-charting-performance-comparisons-the-battle-continues.html
0533デフォルトの名無しさん
2017/03/12(日) 23:26:39.30ID:tHLqC2EA知らなかったら、そう思うよねw
0534デフォルトの名無しさん
2017/03/12(日) 23:39:32.63ID:um3UWw0OWPFの話だけなら納得できるけど
>こんなのPentium2の時代にVB6でも実現できたが、WPFなら今時のハイスペックPC使っても
>まともなものは作れない。
こんなこと言われたら流石に疑うよ
Formsのコントロール貼り付けられたはずだけどあれも遅いの?
0535デフォルトの名無しさん
2017/03/12(日) 23:46:00.66ID:CdRkjVAH0536デフォルトの名無しさん
2017/03/12(日) 23:54:37.56ID:dO1Ecit90537デフォルトの名無しさん
2017/03/13(月) 02:54:19.63ID:0Fbbs/T/失敗を願うというよりは
失敗を認めてもっとマシな次を配給して欲しいんだよなあ
0538デフォルトの名無しさん
2017/03/13(月) 03:03:00.09ID:B8h6+9jsそうなんだよね
まぁ大体想定内の話が出てきたけど結局知識が足りないだけだよねぇ・・・
まずはオフィシャルのドキュメントを読むとか、人のコードを
読むという基本的なことやってないからそうなるんだと思うけど
0539デフォルトの名無しさん
2017/03/13(月) 03:04:55.19ID:0Fbbs/T/UWPだって何年掛けてんだよ
いつ本気出すんだよおう早くしろよ
0540デフォルトの名無しさん
2017/03/13(月) 03:12:19.61ID:XiNdGGJ00541デフォルトの名無しさん
2017/03/13(月) 04:31:25.09ID:WHIOw9Bb0542デフォルトの名無しさん
2017/03/13(月) 06:46:36.72ID:QSdCtFW5DrawingContextを低レベルAPI的なものと勘違いしてクソ遅くなるのは誰もが嵌る罠
実際にはDrawingのラッパーで、普通にDrawing使って要素足していくのと変わらないんだよ
0543デフォルトの名無しさん
2017/03/13(月) 06:53:57.20ID:2GKmTNuXWEBレベルでしか使いものにならない。
0544デフォルトの名無しさん
2017/03/13(月) 07:06:21.67ID:QSdCtFW5遅いのはXMLが原因じゃないよ
バインディングが遅いのと、レイアウトの仕組みが遅いのと、
マネージコードから触れる範囲で最も低レベルな描画API(Drawing系、C++で実装されている)がそもそも遅い
0545デフォルトの名無しさん
2017/03/13(月) 08:14:34.61ID:FHWuye00Forms使い続けたけりゃ黙って使い続けてりゃいいのに。
0546デフォルトの名無しさん
2017/03/13(月) 08:30:43.74ID:2GKmTNuXそういう勘違いしてる時点で終わってる。
0547デフォルトの名無しさん
2017/03/13(月) 10:01:21.80ID:m+rwQY3xなんだろ。
この人、実行時にXAML読んでると思い込んでるとか
悲しくなる位残念な知識で批判してるのかね?
0548デフォルトの名無しさん
2017/03/13(月) 12:22:29.43ID:b3LBfAadテキストでXAML作ってロードさせた方が速いというバカみたいなバッドノウハウがあったな
理由はマネージドなラッパーを通さずにネイティブコードだけで完結するから
ちなみにWPFはというと、XAMLはネイティブではなくマネージコードの領域で実装されてる
それでパフォーマンスの問題があるということで、SilverlightやUWPではネイティブの実装に変更された
WPFは完全に設計が破綻してるんだよ
0549デフォルトの名無しさん
2017/03/13(月) 16:46:05.01ID:oYYuGABt0550デフォルトの名無しさん
2017/03/13(月) 17:19:10.68ID:93pjZO5Gなんかもうネトウヨそっくりの被害妄想全開の思考回路で笑える。
っていうか君ネトウヨでしょ?w
WPFをダメ出ししたからって必ずしもWPFの「失敗を願う」(笑)訳がないし、
Windows Formが優れていると思っている訳でもない。
暗い情熱ってそれ君じゃんw
なぜDirectXを使うなんていう無理のあり過ぎる話を出してまで、
WPFの問題点を指摘する人間にありもしない「悪意」を見出そうとするのか。
君に見えてる悪意は君自身の物なんじゃないのそれ?w
繰り返しになるけどこういうところほんとまんまネトウヨの思考回路だよねw
0551デフォルトの名無しさん
2017/03/13(月) 19:10:08.44ID:2GKmTNuX根本的になぜ遅いか分かってないね。もしかしてデジタルネイティブ?
コード触り始めたときには既にCPUの速度が速かった世代だろう。無知杉。
0552デフォルトの名無しさん
2017/03/13(月) 19:28:37.41ID:2P+mS9E6ちょっとUIスレッドをガッツリ処理終わるまでブロックする
残念なコンポーネントを使わなくちゃいけないんだけど
せめて処理中のアニメーション位は回したい・・・という時
何かうまい手はあるかな?
0553デフォルトの名無しさん
2017/03/13(月) 21:36:10.51ID:FHWuye000554デフォルトの名無しさん
2017/03/13(月) 21:46:47.76ID:93pjZO5GDXがGDI+の全部の機能を包含する、代替しうるものであるのなら、
GDI+発表時にすでにDXは存在したのだからGDI+なんか最初から作る必要がないはずだけど。
ばっかじゃねえの
0555デフォルトの名無しさん
2017/03/13(月) 21:46:49.73ID:73wSFV7gもっと新しくしてくれ。
0556デフォルトの名無しさん
2017/03/13(月) 21:51:47.53ID:QSdCtFW50557デフォルトの名無しさん
2017/03/13(月) 22:42:02.20ID:B8h6+9js根本的に何故遅いの?XMLと絡めてお答えください。
0558デフォルトの名無しさん
2017/03/13(月) 22:50:16.98ID:Zqog3NxD0559デフォルトの名無しさん
2017/03/14(火) 01:07:16.94ID:EgOpPSIv次は何?
0560デフォルトの名無しさん
2017/03/14(火) 01:14:47.26ID:rP/GGbJi0561デフォルトの名無しさん
2017/03/14(火) 20:46:48.31ID:gIyZXesU0562デフォルトの名無しさん
2017/03/16(木) 19:47:46.85ID:VR4NI5xy0563デフォルトの名無しさん
2017/03/17(金) 07:22:38.72ID:gTyXrRTf0564デフォルトの名無しさん
2017/03/17(金) 08:02:15.95ID:D58F65Op0565デフォルトの名無しさん
2017/03/17(金) 08:20:59.20ID:b4JWj3ZmWPF「をベースにした」独自のフレームワーク
2017では一部Electronになったらしい
0566デフォルトの名無しさん
2017/03/17(金) 08:37:30.88ID:5h9Dk/TNWinFormsやWPFのデザイナをどうするかは難しいところだな
簡単に実装するなら今のWinFormsデザイナみたいに上にウィンドウ重ねれば済むことだけど、
WebでそれやるとActiveXの黒歴史を思い起こさせてしまうので、
どうせなら裏で描画したサーフェスの内容をcanvasに転送するみたいな変態技術に期待
0567デフォルトの名無しさん
2017/03/17(金) 11:56:05.56ID:aXo3P0lkときどきこういう技術的にありえない寝言を言う人がいるけど何なんだろうねほんと
0568デフォルトの名無しさん
2017/03/17(金) 12:37:26.88ID:b4JWj3Zm現にVSCodeはHTMLベースだからね
実はそんなに夢物語でもない
0569デフォルトの名無しさん
2017/03/17(金) 13:00:34.46ID:xT3goFZF0570デフォルトの名無しさん
2017/03/17(金) 15:51:40.54ID:BB0aDzryしかし、重いのを除けばHTMLベースでも良いけど
JavaScriptみたいな糞言語が覇権をとってしまった
と言うのがなんか気にくわないんだよなぁ・・・
0571デフォルトの名無しさん
2017/03/17(金) 16:02:52.60ID:gU2hWCcs0572デフォルトの名無しさん
2017/03/17(金) 16:04:37.86ID:gU2hWCcs中身をC#で作って、SL経由でHTML部分に反映させるとかいうアレな手法が使えたな
0573デフォルトの名無しさん
2017/03/17(金) 17:26:17.93ID:aXo3P0lkHTMLの利点が生かせず欠点だけが効いてくる分野にわざわざそれを使うような
酔狂なことをまともな人たちがするはずがない。
そんなのは非現実主義の夢見る子供の発想
0574デフォルトの名無しさん
2017/03/17(金) 19:10:54.15ID:d+qqaT3Sみんな空間をポチッとな
0575デフォルトの名無しさん
2017/03/17(金) 21:01:15.40ID:BB0aDzryVRって細かい文字を注視する用途には使えるのかね?
視点入力は実用化してほしいけど
注視してる所がアクティブになったりすると便利かも?
0576デフォルトの名無しさん
2017/03/17(金) 21:04:41.11ID:DD2m+MHT0577デフォルトの名無しさん
2017/03/17(金) 21:06:52.73ID:ZwZtKTTF■ このスレッドは過去ログ倉庫に格納されています