Windows Presentation Frameworkについて語るスレ。
前スレ
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
https://mevius.5ch.net/test/read.cgi/tech/1612522463
関連スレ
Windows 10 UWPアプリ開発 Part 2
http://mevius.2ch.net/test/read.cgi/tech/1499658092/
コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
探検
WPF(.NET, WinUI) GUIプログラミング Part26
■ このスレッドは過去ログ倉庫に格納されています
2021/06/20(日) 17:04:18.66ID:7UVkl7BZ
556デフォルトの名無しさん
2021/07/12(月) 22:19:19.66ID:0kBd/ns6 ああ、ごめん俺が間違ってたww
>通知処理(Modelの購読が必要になるケース)なんてほぼほぼ無くて
ここでちゃんと否定してたねw
>通知処理(Modelの購読が必要になるケース)なんてほぼほぼ無くて
ここでちゃんと否定してたねw
557デフォルトの名無しさん
2021/07/12(月) 22:20:11.65ID:LswkHmLx558デフォルトの名無しさん
2021/07/12(月) 22:22:33.14ID:e9fWYKI2 一応はWPFなりMVVMなりを前提として話してるもんだと思ったらまさかのUIは関係ない宣言
U I は 関 係 な か っ た !
そら誰とも話通じんわw バカ同士仲良くしてくれ
U I は 関 係 な か っ た !
そら誰とも話通じんわw バカ同士仲良くしてくれ
559デフォルトの名無しさん
2021/07/12(月) 22:25:45.89ID:0kBd/ns6560デフォルトの名無しさん
2021/07/12(月) 23:41:05.62ID:B/Smfxyl なんじゃこりゃ!
561デフォルトの名無しさん
2021/07/12(月) 23:46:26.66ID:B/Smfxyl WPFに限らず一般的な話してるだけじゃん
562デフォルトの名無しさん
2021/07/12(月) 23:57:26.60ID:0kBd/ns6 俺は土曜日までは会話に主な論点わかってたけど
昼間に君のレス見て、UIと通知を結びつける人がいて気になってたから、その人向けにUI関係ない通知の一般論言ってるんだろうと納得してたら
夜みて、通知の一般論言ってるだけなら全く関係ない人が怒り出してから草
って感じ
昼間に君のレス見て、UIと通知を結びつける人がいて気になってたから、その人向けにUI関係ない通知の一般論言ってるんだろうと納得してたら
夜みて、通知の一般論言ってるだけなら全く関係ない人が怒り出してから草
って感じ
563デフォルトの名無しさん
2021/07/13(火) 00:56:18.26ID:xjJDoKS2 だってWPFと関係ない話になってんだもん
むしろ論点ずらししてるっしょ
むしろ論点ずらししてるっしょ
564デフォルトの名無しさん
2021/07/13(火) 05:46:23.04ID:fhfe26+M 頭ひろゆきかよ
565デフォルトの名無しさん
2021/07/13(火) 08:46:15.95ID:Pw5n0ID3 VMに相当する部分にビジネスロジックをガッツリ書くのはアプリ設計としてありだが、それはMVVMじゃないな
MVVMはModelにビジネスロジックを書くのが本来の定義だ
MVVMはModelにビジネスロジックを書くのが本来の定義だ
566デフォルトの名無しさん
2021/07/13(火) 08:51:29.18ID:+zVQ74um いやあ皆性格わるいねえw
醜いもんだよw
醜いもんだよw
567デフォルトの名無しさん
2021/07/13(火) 09:07:04.94ID:xejzJ7TX568デフォルトの名無しさん
2021/07/13(火) 09:08:01.98ID:xejzJ7TX ぶちきれてるねw
569デフォルトの名無しさん
2021/07/13(火) 09:18:27.78ID:DZCKnpMT570デフォルトの名無しさん
2021/07/13(火) 09:23:04.37ID:DZCKnpMT どんなプログラミングパラダイムを採用しようと
UIの変更にモデルは影響されないのが原則だと思ってる
例えばWPFで作ったものをASP.netでWebインターフェイスに変更することになったとしてもモデルには一切触れなくて済むのが本来あるべき姿
しかしモデルにUIのための通知機能を入れた途端にそれは破綻する
別にモデル通知機能があったって動くから良いだろと言う話ではない
そこがモデルに通知機能を実装する違和感の根源
UIの変更にモデルは影響されないのが原則だと思ってる
例えばWPFで作ったものをASP.netでWebインターフェイスに変更することになったとしてもモデルには一切触れなくて済むのが本来あるべき姿
しかしモデルにUIのための通知機能を入れた途端にそれは破綻する
別にモデル通知機能があったって動くから良いだろと言う話ではない
そこがモデルに通知機能を実装する違和感の根源
571デフォルトの名無しさん
2021/07/13(火) 10:32:02.27ID:2EC2vCMH 変更を通知するサービス
たとえばみんなが知ってる gmail(いわゆるPushメール)とかは
クライアントを WPF でも Flutter でも React でも作れると思いますが、
ではこの機能は何に相当するのでしょうか?
たとえばみんなが知ってる gmail(いわゆるPushメール)とかは
クライアントを WPF でも Flutter でも React でも作れると思いますが、
ではこの機能は何に相当するのでしょうか?
572デフォルトの名無しさん
2021/07/13(火) 10:53:55.72ID:s3qWh6Np 通知機能のあるMをVMのObservableCollectionでVに公開すると
このMはVMになりますか?
MVVMでは反則でしょうか?
このMはVMになりますか?
MVVMでは反則でしょうか?
573デフォルトの名無しさん
2021/07/13(火) 10:55:02.74ID:t7skZb6/574デフォルトの名無しさん
2021/07/13(火) 11:08:48.39ID:dtNqNBdW Amazon SNS(Simple Notification Service)は、
そのためだけにサーバーを用意しなくても、
アプリケーションからの通知を可能にするサービスです
ユーザーが何かを行ったタイミングで通知する
「イベントドリブン」なメッセージングを手軽に実現します
そのためだけにサーバーを用意しなくても、
アプリケーションからの通知を可能にするサービスです
ユーザーが何かを行ったタイミングで通知する
「イベントドリブン」なメッセージングを手軽に実現します
575デフォルトの名無しさん
2021/07/13(火) 20:50:38.25ID:b1BrGGh1576デフォルトの名無しさん
2021/07/13(火) 22:05:10.54ID:xjJDoKS2577デフォルトの名無しさん
2021/07/14(水) 19:37:54.90ID:Ftj7Gfdw 今日は勝ちたい病のVMにビジネスロジック実装する君は来てないの?
578デフォルトの名無しさん
2021/07/14(水) 21:01:12.91ID:FWHo5b9L どうした、恋しいか?
579デフォルトの名無しさん
2021/07/14(水) 22:40:50.82ID:UYQRt03E こないと>>547の馬鹿みたく関係ない人攻撃しだすからなww
580デフォルトの名無しさん
2021/07/14(水) 22:48:26.38ID:Ftj7Gfdw え?
ID:B/Smfxylは馬鹿だよ
ID:B/Smfxylは馬鹿だよ
581デフォルトの名無しさん
2021/07/14(水) 23:03:29.16ID:UYQRt03E 久しぶりにみたわ
必死過ぎて全員敵に見える病ww
必死過ぎて全員敵に見える病ww
582デフォルトの名無しさん
2021/07/14(水) 23:13:04.52ID:wjhDeS6u 家に鏡がないのか?
鏡を買えば毎日見られるぞ
鏡を買えば毎日見られるぞ
583デフォルトの名無しさん
2021/07/15(木) 02:12:58.55ID:rXkSqNZ0 自分がそれで見られるからって
他人が同じことして見られると思ってるあたりが馬鹿だよね
他人が同じことして見られると思ってるあたりが馬鹿だよね
584デフォルトの名無しさん
2021/07/15(木) 08:43:28.31ID:erbvpp8v みんな皮肉が上手だなあ(鼻ホジ)
585デフォルトの名無しさん
2021/07/15(木) 10:10:56.93ID:Gu3XCrlD >>576
いやMの通知をVが監視する状態だよ
いやMの通知をVが監視する状態だよ
586デフォルトの名無しさん
2021/07/15(木) 14:23:21.77ID:VeQWWe0f ロジックはコマンドに書いてるけどコマンドってVMの仲間じゃないの?
587デフォルトの名無しさん
2021/07/15(木) 19:55:28.67ID:yhXjFIIz588デフォルトの名無しさん
2021/07/15(木) 20:40:50.25ID:yPgIH8DR そういやコレクションでもしっかりVM挟めって人がWPF出来て直ぐの頃は言う人いたよな
589デフォルトの名無しさん
2021/07/15(木) 23:20:18.67ID:twFSqmod なんか人によってVMの定義が違うのかねぇ?
WPFだとDataContextにセットするのがVMだと認識しているが。
WPFだとDataContextにセットするのがVMだと認識しているが。
590デフォルトの名無しさん
2021/07/15(木) 23:31:38.36ID:yPgIH8DR591デフォルトの名無しさん
2021/07/16(金) 19:02:18.73ID:tbXedaSH ビジネスが破綻する大半の原因は、 ”ビジネスを始める人の大半が、真の意味での
「起業家」ではなく、 起業したい、という熱に浮かれた「職人」として働いているに過ぎない。”
という事実にあります。
「職人」によって運営されているビジネスは、ビジネスが働くのではなく、彼ら自身が毎日働くこと
によって、成り立っています。
彼らは毎日、自分がやり方を知っている仕事を一生懸命にこなしていますが、「起業家」としての
視点が無いために、成長に限界が生まれます。
そして、生計を立てるために、彼ら自身がずっと働き続けないとならないのです。
誰もが必ず陥る罠
私が見ている限り、起業熱にうなされる人たちは、必ずと言ってもよいほど誤った
「仮定」を置いてしまうようだ。実は、のちに彼らが苦難の道を歩むことになるのは、
この、「仮定」が致命的に間違っているからなのである
致命的な仮定とは・・・「事業の中心となる専門的な能力があれば、事業を経営する能力は
十分に備わっている」ということである
私がこの仮定を致命的だと書いたのは、この仮定が間違っているからにほかならない
事業の中で専門的な仕事をこなすことと、その能力を生かして事業を経営することは
全く別の問題である。高い専門能力を持つ人にとって、独立は他人の為に働くという苦痛から
解放されるということを意味していた。それにもかかわらず、前提となる「仮定」が致命的とも
いえるほど間違えているために、彼らは自由になるどころか、自分が始めた事業に苦しめ
られるようになってしまうのである
マイケルEガーバー「はじめの一歩を踏み出そう」P28~29
「起業家」ではなく、 起業したい、という熱に浮かれた「職人」として働いているに過ぎない。”
という事実にあります。
「職人」によって運営されているビジネスは、ビジネスが働くのではなく、彼ら自身が毎日働くこと
によって、成り立っています。
彼らは毎日、自分がやり方を知っている仕事を一生懸命にこなしていますが、「起業家」としての
視点が無いために、成長に限界が生まれます。
そして、生計を立てるために、彼ら自身がずっと働き続けないとならないのです。
誰もが必ず陥る罠
私が見ている限り、起業熱にうなされる人たちは、必ずと言ってもよいほど誤った
「仮定」を置いてしまうようだ。実は、のちに彼らが苦難の道を歩むことになるのは、
この、「仮定」が致命的に間違っているからなのである
致命的な仮定とは・・・「事業の中心となる専門的な能力があれば、事業を経営する能力は
十分に備わっている」ということである
私がこの仮定を致命的だと書いたのは、この仮定が間違っているからにほかならない
事業の中で専門的な仕事をこなすことと、その能力を生かして事業を経営することは
全く別の問題である。高い専門能力を持つ人にとって、独立は他人の為に働くという苦痛から
解放されるということを意味していた。それにもかかわらず、前提となる「仮定」が致命的とも
いえるほど間違えているために、彼らは自由になるどころか、自分が始めた事業に苦しめ
られるようになってしまうのである
マイケルEガーバー「はじめの一歩を踏み出そう」P28~29
592デフォルトの名無しさん
2021/07/16(金) 20:45:27.50ID:nOgfrdpb >>590
それは問題なくて、逆にDataContextと関係ないものまでVMと言っている人がいるような気がしたんで。
それは問題なくて、逆にDataContextと関係ないものまでVMと言っている人がいるような気がしたんで。
593デフォルトの名無しさん
2021/07/21(水) 18:44:02.13ID:za3x9XY8 年末まで動きはなしか
594デフォルトの名無しさん
2021/07/21(水) 21:28:05.11ID:0TrBhSUB >>593
それでも0.5と違ってreunion0.8は、そこそこ安定しているよ
それでも0.5と違ってreunion0.8は、そこそこ安定しているよ
595デフォルトの名無しさん
2021/07/22(木) 05:38:57.11ID:fbsqHODV なんでtextblockってこんな中途半端に作ってあるのかな
作ってるときに上下のスペース気にならなかったのか
作ってるときに上下のスペース気にならなかったのか
596デフォルトの名無しさん
2021/07/22(木) 17:25:19.02ID:lRm6lFPm なんのこと?
597デフォルトの名無しさん
2021/07/22(木) 18:31:15.26ID:vwDpdZeF richtextboxの上下のスペースなら気になった
馬鹿が作ったんだろうなとニヤニヤした
馬鹿が作ったんだろうなとニヤニヤした
598デフォルトの名無しさん
2021/07/22(木) 20:01:46.34ID:PV0Y3pfC 全角半角混在バカ
599デフォルトの名無しさん
2021/07/23(金) 06:59:12.37ID:F886/8HL WinUI早くソース公開してくれ
600デフォルトの名無しさん
2021/07/23(金) 12:50:01.83ID:YjvHno2g そーっすね
601デフォルトの名無しさん
2021/07/23(金) 19:10:22.48ID:LsYzUOc/ そこでWPF完全終了?
602デフォルトの名無しさん
2021/07/24(土) 15:09:24.06ID:B0+KuVSr603デフォルトの名無しさん
2021/07/24(土) 17:27:17.07ID:XrMlrlks WinUIってWPFよりUWPのほうが近くない?
604デフォルトの名無しさん
2021/07/24(土) 18:17:14.05ID:jHuzu2oV 基本的にGUIはUWPが基本でほんの一部異なる程度
売りはファイルアクセスなどの制限のない.netのクラスや
C言語のライブラリが普通に使えること
残念なのは.net nativeは対応していないからUWPほど高速にはならないところだな
売りはファイルアクセスなどの制限のない.netのクラスや
C言語のライブラリが普通に使えること
残念なのは.net nativeは対応していないからUWPほど高速にはならないところだな
605デフォルトの名無しさん
2021/07/24(土) 19:31:02.40ID:m9/tzZBE これがreunionちゃんか?
ttps://docs.microsoft.com/ja-jp/windows/apps/desktop/modernize/xaml-islands
ttps://docs.microsoft.com/ja-jp/windows/apps/desktop/modernize/host-standard-control-with-xaml-islands
ttps://docs.microsoft.com/ja-jp/windows/apps/desktop/modernize/xaml-islands
ttps://docs.microsoft.com/ja-jp/windows/apps/desktop/modernize/host-standard-control-with-xaml-islands
606デフォルトの名無しさん
2021/07/24(土) 20:52:35.53ID:PoLbY2rq 俺はカラー絵文字が普通に使えさえすればもうWPFで十分なんだけど
それってUWPのコントロールが使えるようになるとかいうnugetパッケージ入れりゃ簡単にできるもんなの?
それってUWPのコントロールが使えるようになるとかいうnugetパッケージ入れりゃ簡単にできるもんなの?
607デフォルトの名無しさん
2021/07/25(日) 12:45:55.14ID:KYDDSoJA 備品管理のために配置図作成プログラムを作るために下の二つを使いたい
マップ描画用
https://noitalog.tokyo/wpf-excel-shape/
UndoRedo機能用
https://qiita.com/nossey/items/c59910558d5501f03ad0
Undo機能でマップ描画のキャンセルをしたいんだけど
Record(() => { /*do*/ }, () => { /*undo*/ });のところに何を入れればいいのか分からない
何を入れれば実現するのか教えてください
もしくはもっといいライブラリがあれば教えてください
マップ描画用
https://noitalog.tokyo/wpf-excel-shape/
UndoRedo機能用
https://qiita.com/nossey/items/c59910558d5501f03ad0
Undo機能でマップ描画のキャンセルをしたいんだけど
Record(() => { /*do*/ }, () => { /*undo*/ });のところに何を入れればいいのか分からない
何を入れれば実現するのか教えてください
もしくはもっといいライブラリがあれば教えてください
608デフォルトの名無しさん
2021/07/25(日) 15:14:28.53ID:NdwY3sWp >>607
そういうツール作ったことあるけど、Undo/Redoは状態そのものを記録する方式の方が楽だよ
操作ごとに描画したモデルをスタックに積む感じでとっておいて
Undoでポインタを遡る、Redoされたらポインタを進める
そういうツール作ったことあるけど、Undo/Redoは状態そのものを記録する方式の方が楽だよ
操作ごとに描画したモデルをスタックに積む感じでとっておいて
Undoでポインタを遡る、Redoされたらポインタを進める
609デフォルトの名無しさん
2021/07/25(日) 15:39:24.67ID:KYDDSoJA つまり別のライブラリを使った方がいいってことですね
探してみます
探してみます
610デフォルトの名無しさん
2021/07/25(日) 15:50:45.11ID:UpcvNBvN611デフォルトの名無しさん
2021/07/26(月) 13:34:11.89ID:if+3GvI0 undo/redoをcommandパターンで実現するときのネックは、逆方向への操作を綺麗に実装出来るかどうか
たとえば、0から1増やす操作は可逆性があるので簡単だが、0を1に変更する操作は可逆性がないので元の値を必要な分だけcommandに設定しておかないといけない
必要な分が広範囲になると、丸ごと状態を記録するのと変わらなくなってしまい、ただ実装が複雑になる
stateパターンの場合は、実装が簡単というメリットの代わりに、状態をうまく独立させないとリソースを大量に消費するというデメリットがある
commandパターンで、直接状態を変更するcommandを作るのではなく、状態の差分を算出して適用できるように実装出来れば、両者の問題を解決できる
たとえば、0から1増やす操作は可逆性があるので簡単だが、0を1に変更する操作は可逆性がないので元の値を必要な分だけcommandに設定しておかないといけない
必要な分が広範囲になると、丸ごと状態を記録するのと変わらなくなってしまい、ただ実装が複雑になる
stateパターンの場合は、実装が簡単というメリットの代わりに、状態をうまく独立させないとリソースを大量に消費するというデメリットがある
commandパターンで、直接状態を変更するcommandを作るのではなく、状態の差分を算出して適用できるように実装出来れば、両者の問題を解決できる
612デフォルトの名無しさん
2021/07/26(月) 15:01:38.67ID:sA+3cpxO doに新しい状態でundoに古い状態を入れたらいいんでしょ
規模も不明なんで丸ごと記録でいいんじゃない
規模も不明なんで丸ごと記録でいいんじゃない
613デフォルトの名無しさん
2021/07/26(月) 18:39:34.76ID:HAWagkhF Undo可能クラスも実装出来んの?
(例)
var val1 = new Undoable<int>(0);
val1.Set(1);
val1.Undo();
val1.Commit();
if (val1.Value == 0) {
}
(例)
var val1 = new Undoable<int>(0);
val1.Set(1);
val1.Undo();
val1.Commit();
if (val1.Value == 0) {
}
614デフォルトの名無しさん
2021/07/26(月) 18:41:04.91ID:HAWagkhF UndoableクラスのValueプロパティーをInotifyPropertyChangedで実装しとけ!
615デフォルトの名無しさん
2021/07/26(月) 21:06:01.64ID:if+3GvI0616デフォルトの名無しさん
2021/07/26(月) 22:19:37.90ID:HAWagkhF getter位実装しろや
617デフォルトの名無しさん
2021/07/26(月) 22:28:38.74ID:HAWagkhF setter ...(; ・`д・´)!
618デフォルトの名無しさん
2021/07/26(月) 22:34:21.59ID:rgsHaqle >>613
その実装をどうしようって話だと思うんだけど
その実装をどうしようって話だと思うんだけど
619デフォルトの名無しさん
2021/07/26(月) 22:40:13.03ID:HAWagkhF どこまでおんぶにダッコよ(>_<。)!
620デフォルトの名無しさん
2021/07/26(月) 22:46:07.45ID:FJAlPqYb 編集するタイプごとのenum作って復旧/削除用のバッファ・位置情報を持つクラスを作るのだ
通常の編集処理に渡せるようにできるかがあんきも
通常の編集処理に渡せるようにできるかがあんきも
621デフォルトの名無しさん
2021/07/26(月) 23:08:38.92ID:rgsHaqle >>619
元の質問読んでなさすぎだろw
元の質問読んでなさすぎだろw
622デフォルトの名無しさん
2021/07/26(月) 23:14:37.82ID:HAWagkhF ゴミと判断した
>>607ですがC#ほとんど素人です
stack<t> にcanvasを入れてみてpushやpopしても上手く変更されず
stack<t> にcanvasを入れてみてpushやpopしても上手く変更されず
624デフォルトの名無しさん
2021/07/27(火) 18:46:15.06ID:KMLdgMbQ625デフォルトの名無しさん
2021/07/28(水) 09:34:26.66ID:m3dX+aIk >>623
確かどっかにC#初心者スレがあったはずだから
確かどっかにC#初心者スレがあったはずだから
627デフォルトの名無しさん
2021/08/01(日) 18:11:43.70ID:tzaLBmjr c#に慣れてきてWPFに挑戦しようかなと公式チュートリアルのHello Goodbyeを試した。
1.まずはxamlの名前を変えましょうでエラー。
1時間ほどなら悩みまくってチュートリアルページ遥か下にデバッグの項目で意図的なバグだとわかった時はキレそうになった。
引き続き学習しようと思ってるんだけど、参考になるサイトある?
1.まずはxamlの名前を変えましょうでエラー。
1時間ほどなら悩みまくってチュートリアルページ遥か下にデバッグの項目で意図的なバグだとわかった時はキレそうになった。
引き続き学習しようと思ってるんだけど、参考になるサイトある?
628デフォルトの名無しさん
2021/08/01(日) 18:45:22.56ID:BCtBnKvQ かずき
629デフォルトの名無しさん
2021/08/01(日) 20:21:17.09ID:ovUX7fTa xamlはhtmlと同じようにタグをエディターで入力するしかないって気づいたところから使えるようになっていったな
Formsみたくコントロールをマウスで並べようとして挫折しかけた
Formsみたくコントロールをマウスで並べようとして挫折しかけた
630デフォルトの名無しさん
2021/08/01(日) 21:11:07.02ID:zuqV0aN+ タグ書いて完璧なUIを作るのが楽しい
グラフィカルなエディターってチラ見するだけのものだな
グラフィカルなエディターってチラ見するだけのものだな
631デフォルトの名無しさん
2021/08/01(日) 21:17:10.83ID:zRRMy60W 公式チュートリアルにHello Goodbye(world?) なんてあったっけ
632デフォルトの名無しさん
2021/08/01(日) 22:31:27.62ID:tzaLBmjr >>631
チュートリアル: C# で単純なアプリケーションを作成する 2021/02/10
ttps://docs.microsoft.com/ja-jp/visualstudio/get-started/csharp/tutorial-wpf?view=vs-2019
Hello Worldレベルでつまづいたのは初めてでショック。
wpf tutorialで検索したら良さげなサイト見つけられたからもういいんだけどね。
チュートリアル: C# で単純なアプリケーションを作成する 2021/02/10
ttps://docs.microsoft.com/ja-jp/visualstudio/get-started/csharp/tutorial-wpf?view=vs-2019
Hello Worldレベルでつまづいたのは初めてでショック。
wpf tutorialで検索したら良さげなサイト見つけられたからもういいんだけどね。
633デフォルトの名無しさん
2021/08/01(日) 22:31:58.77ID:hLrbx4IS ハロー!そしてグッドバイ!
634デフォルトの名無しさん
2021/08/02(月) 01:14:13.50ID:GLNJH6H3635デフォルトの名無しさん
2021/08/02(月) 12:27:13.51ID:cBPUjued >>629
Formsと同じような作り方してると結局Formsと同じくサイズ変更やレイアウト変更に脆い画面になっちまうんだよな。
GUIから貼り付けると余計なプロパティも追加されてごちゃつくし。
XAML用のコードスニペット用意して爆速コーディングがお勧め。
Formsと同じような作り方してると結局Formsと同じくサイズ変更やレイアウト変更に脆い画面になっちまうんだよな。
GUIから貼り付けると余計なプロパティも追加されてごちゃつくし。
XAML用のコードスニペット用意して爆速コーディングがお勧め。
636デフォルトの名無しさん
2021/08/02(月) 17:35:01.31ID:OwNzYS4q 縦にズラーと並べてご満悦ですか
637デフォルトの名無しさん
2021/08/03(火) 06:02:09.33ID:YKUXzg3a WrapPanelもあるでよ
638デフォルトの名無しさん
2021/08/05(木) 12:08:27.09ID:LnW659PN winui触ってるけど非同期メソッド多すぎてイライラする
慣れたら気にならなくなるのかな
慣れたら気にならなくなるのかな
639デフォルトの名無しさん
2021/08/05(木) 12:48:41.25ID:qCKYnrg6 むしろ非同期メソッドが用意されていない方がイライラするだろ。
640デフォルトの名無しさん
2021/08/05(木) 21:46:17.56ID:iyi+GUtj >>638
WinUIまだ触れてなくて分からないんだが、もうDispatcher.Invokeしなくて良くなるの?
WinUIまだ触れてなくて分からないんだが、もうDispatcher.Invokeしなくて良くなるの?
641デフォルトの名無しさん
2021/08/05(木) 22:11:14.99ID:hAnk8QxE きっちりMVVMしてりゃDispatcher.Invokeなんて出番ないんだが。
642デフォルトの名無しさん
2021/08/05(木) 22:41:02.46ID:szLnk8N0643デフォルトの名無しさん
2021/08/06(金) 00:49:06.65ID:y474vaxZ 最近のアプリはクリックしたあとすぐに反応しないアプリ多すぎ。というかWindows10。
馬鹿に非同期の実装は無理ということ。
馬鹿に非同期の実装は無理ということ。
644デフォルトの名無しさん
2021/08/06(金) 18:59:51.04ID:gqafcbP7 OneNote UWP版、死亡。
着実に脱UWPしていってるな、よしよし。
着実に脱UWPしていってるな、よしよし。
645デフォルトの名無しさん
2021/08/08(日) 10:59:54.62ID:CLpDwXEd コード簡略のためにawait 使いまくってるサンプルが世に広まってるのが良くないのかね(´・ω・`)
646デフォルトの名無しさん
2021/08/10(火) 10:09:01.90ID:l4gp57RE MahAppsでGUI作っていたけど今更Metro(Modern) UIというのもアレなんで
最近出たらしいWinUI 3.0で組もうとしているけど、ウィンドウサイズを変えることができない。
なんか、いい方法ない?
あと、WPFで使っているからかもしれないが、Windows.Storage.FilePickerの動作がなんか不安定だ。
PickSingleFileAsyncは動くのにPickMultipleFilesAsyncだとコケる。
最近出たらしいWinUI 3.0で組もうとしているけど、ウィンドウサイズを変えることができない。
なんか、いい方法ない?
あと、WPFで使っているからかもしれないが、Windows.Storage.FilePickerの動作がなんか不安定だ。
PickSingleFileAsyncは動くのにPickMultipleFilesAsyncだとコケる。
647デフォルトの名無しさん
2021/08/10(火) 10:50:56.88ID:WgvQ9Z8W648デフォルトの名無しさん
2021/08/10(火) 11:07:37.44ID:l4gp57RE 非同期じゃないとUIロックしちゃうじゃないですかーっ。(キャンセルボタンが押せない進捗ダイアログとかできてしまう)
>>647
ハンドルかぁ。
なんか以下の4種類ぐらい取得する方法あるっぽいけど違いがよくわからない・・・。
1:
[DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Auto, PreserveSig = true, SetLastError = false)]
private static extern IntPtr GetActiveWindow();
IntPtr hwnd = GetActiveWindow();
2:
[ComImport, Guid("EECDBF0E-BAE9-4CB6-A68E-9598E1CB57BB"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IWindowNative
{
IntPtr WindowHandle { get; }
}
IntPtr hwnd = WindowHandle();
3:
IntPtr hwnd = new WindowInteropHelper(Application.Current.MainWindow).Handle;
4:
IntPtr hwnd = WinRT.Interop.WindowNative.GetWindowHandle(Application.Current.MainWindow);
>>647
ハンドルかぁ。
なんか以下の4種類ぐらい取得する方法あるっぽいけど違いがよくわからない・・・。
1:
[DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Auto, PreserveSig = true, SetLastError = false)]
private static extern IntPtr GetActiveWindow();
IntPtr hwnd = GetActiveWindow();
2:
[ComImport, Guid("EECDBF0E-BAE9-4CB6-A68E-9598E1CB57BB"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IWindowNative
{
IntPtr WindowHandle { get; }
}
IntPtr hwnd = WindowHandle();
3:
IntPtr hwnd = new WindowInteropHelper(Application.Current.MainWindow).Handle;
4:
IntPtr hwnd = WinRT.Interop.WindowNative.GetWindowHandle(Application.Current.MainWindow);
649デフォルトの名無しさん
2021/08/10(火) 12:38:45.38ID:WgvQ9Z8W >>648
microsoft shell controls and automation ってのをcom参照すればOK
それでWindowがアクティブな状態で
m_windowhandle = PInvoke.User32.GetActiveWindow();
な具合でOK
microsoft shell controls and automation ってのをcom参照すればOK
それでWindowがアクティブな状態で
m_windowhandle = PInvoke.User32.GetActiveWindow();
な具合でOK
650デフォルトの名無しさん
2021/08/10(火) 15:18:02.31ID:Zfr/tHwz WinAPI使うならPciker使うこと自体避けてしまえば
https://docs.microsoft.com/en-us/windows/win32/api/commdlg/ns-commdlg-openfilenamew
https://docs.microsoft.com/en-us/windows/win32/api/commdlg/ns-commdlg-openfilenamew
651デフォルトの名無しさん
2021/08/10(火) 16:38:59.72ID:3CW5QVj8 WINUIってコントロールにハンドルないの?
652デフォルトの名無しさん
2021/08/10(火) 17:46:08.05ID:l4gp57RE うーん、今更Windows7時代のAPIを叩くWindows API Code PackやOokiiDialogを使うのは微妙だなってことで。
Windows11になったときに浮いてしまうんじゃないかとというのはさておき、複数のファイルやディレクトリを選択できるのがいいかなと。
いつの時代なんだよといわんばかりのデザインのMessageBoxもまた然り。
>>651
ハンドルのとり方に違いはあるにせよ、だいたい以下のようなコードを使うみたいなことが書いてある。
これはとりあえず動いているコード。
[ComImport, Guid("3E68D4BD-7135-4D10-8018-9FB6D9F33FA1"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IInitializeWithWindow
{
void Initialize([In] IntPtr hwnd);
}
// ダイアログを定義
FileSavePicker picker = new()
{
SuggestedFileName = "text",
SuggestedStartLocation = PickerLocationId.PicturesLibrary,
FileTypeChoices = { { "Text File", new List<string>() { ".txt" } } }
};
// ウィンドウバンドルを取得
IntPtr hwnd = new WindowInteropHelper(Application.Current.MainWindow).Handle;
IInitializeWithWindow withWindow = picker.As<IInitializeWithWindow>();
withWindow.Initialize(hwnd);
// ファイルダイアログを表示
StorageFile file = await picker.PickSaveFileAsync();
まぁ、上のコードはちゃんと動くけど、
IReadOnlyList<StorageFile> files= await picker.PickMultipleFilesAsync();
のように複数選択にすると動かない不思議。
参考:https://qiita.com/okazuki/items/227f8d19e38a67099006
Windows11になったときに浮いてしまうんじゃないかとというのはさておき、複数のファイルやディレクトリを選択できるのがいいかなと。
いつの時代なんだよといわんばかりのデザインのMessageBoxもまた然り。
>>651
ハンドルのとり方に違いはあるにせよ、だいたい以下のようなコードを使うみたいなことが書いてある。
これはとりあえず動いているコード。
[ComImport, Guid("3E68D4BD-7135-4D10-8018-9FB6D9F33FA1"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IInitializeWithWindow
{
void Initialize([In] IntPtr hwnd);
}
// ダイアログを定義
FileSavePicker picker = new()
{
SuggestedFileName = "text",
SuggestedStartLocation = PickerLocationId.PicturesLibrary,
FileTypeChoices = { { "Text File", new List<string>() { ".txt" } } }
};
// ウィンドウバンドルを取得
IntPtr hwnd = new WindowInteropHelper(Application.Current.MainWindow).Handle;
IInitializeWithWindow withWindow = picker.As<IInitializeWithWindow>();
withWindow.Initialize(hwnd);
// ファイルダイアログを表示
StorageFile file = await picker.PickSaveFileAsync();
まぁ、上のコードはちゃんと動くけど、
IReadOnlyList<StorageFile> files= await picker.PickMultipleFilesAsync();
のように複数選択にすると動かない不思議。
参考:https://qiita.com/okazuki/items/227f8d19e38a67099006
653デフォルトの名無しさん
2021/08/10(火) 18:43:48.86ID:3CW5QVj8654おじさん(*'▽')
2021/08/10(火) 19:13:20.91ID:/fr9b65w GUIプログラムは、Electronを使うのが一番簡単だと思うね
ちなみにおじさん(*'▽')はJavascriptはあんまり得意じゃないな
ちなみにおじさん(*'▽')はJavascriptはあんまり得意じゃないな
655おじさん(*'▽')
2021/08/10(火) 19:18:23.47ID:/fr9b65w C言語は、競技プログラミングでしか使ったことないな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化へ 過去10年間に使用のメールアドレスや電話番号等も★2 [Hitzeschleier★]
- オイルマッサージ施術中20代女性にわいせつ行為か セラピストの男(30)を再逮捕 余罪複数とみて警視庁が捜査 [どどん★]
- 【中国外務省】日本への渡航自粛を再度呼びかけ 今度は「地震発生」を理由に [ぐれ★]
- 内閣支持、微減59.9% 5割超が補正予算評価 時事通信世論調査 [どどん★]
- 立憲・小宮山議員、「牛乳=白い水」投稿を削除 批判殺到で「大変失礼申し上げました」 [少考さん★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず★3 [七波羅探題★]
- 【高市バイク】 ホンダ高級バイク「スーパーカブ110 Lite」を発売。 お値段 34万1000円~ 🛵 [485983549]
- 【悲報】日本人のTikTok収益、ガチで剥奪中wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 【悲報】日中戦争5割が賛成、高市キッズたち徴兵へ [834922174]
- 【高市遺産】 ユネスコさん。日本の「匠の技」「屋台」「和紙」などを無形文化遺産に登録 🎉🎊 [485983549]
- 日清オイリオ「オリーブオイルの高騰が落ち着いたのにお前らが買わない!」 [592058334]
- 【画像】整形カリカリ女が「この画像」にブチギレる理由、謎… [732289945]
