WPF(.NET, WinUI) GUIプログラミング Part31

■ このスレッドは過去ログ倉庫に格納されています
2023/01/22(日) 05:53:16.97ID:oY263ilm
WPF(Windows Presentation Foundation)について語るスレ。

前スレ
WPF(.NET, WinUI) GUIプログラミング Part30
https://mevius.5ch.net/test/read.cgi/tech/1667010874/

関連スレ
Windows 10 UWPアプリ開発Part 3
https://mevius.5ch.net/test/read.cgi/tech/1627556967/

コードを貼る場合は以下のサイトの利用をお勧め。
https://ideone.com/
469デフォルトの名無しさん
垢版 |
2023/05/28(日) 09:39:52.71ID:Ey5hy/ud
なるほど。
2023/05/28(日) 10:01:16.41ID:Cp1PF5Jv
xamlってのはc#のコードに変換されてから普通のコードと同じくコンパイルされるが
xamlだけで書くのが不可能だったり面倒なものをc#のコードで書くわけだが、
それがhoge,xamlに対して.hoge.csというファイル
コンパイルする過程でhoge.xamlとhoge,csは同じクラスに統合されることになる

説明すると結構めんどくさいものだよな
471デフォルトの名無しさん
垢版 |
2023/05/28(日) 11:34:33.04ID:Ey5hy/ud
XAMLと結合される C#,VBなどのソースコード、と書けばいいのに。
相変わらず分かりにくい書き方。機械翻訳にしてもヒドイ。
2023/05/28(日) 11:45:47.85ID:1uqhjo5x
>>471
MSの機械翻訳が酷いのは前からだろ
英語読めよ

> Code-behind is a term used to describe the code that is joined with markup-defined objects, when a XAML page is markup-compiled.
訳:コードビハインドは、XAMLがコンパイルされる時にXAMLによって定義されたオブジェクトと結合されるコードを示す用語である
2023/05/28(日) 12:07:08.23ID:tf5tRNCc
https://github.com/microsoft/WindowsAppSDK/releases
WinAppSDK 1.4 experimental
2023/05/28(日) 12:08:08.67ID:tf5tRNCc
https://fluent2.microsoft.design
Fluent 2
475デフォルトの名無しさん
垢版 |
2023/05/28(日) 12:38:32.86ID:Ey5hy/ud
>>472
日本語訳はgoogle翻訳とほぼ同じ。
AI、AIいうけど機械翻訳の精度を上げてほしいよな。
そのうち、翻訳家なんて居なくなるんだろうか。
476デフォルトの名無しさん
垢版 |
2023/05/28(日) 15:29:21.97ID:py1hKJLu
コードビハインドの意味が分からないと言ってる人はとりあえず簡単な入門本を1冊読んだ方がいいと思う
477デフォルトの名無しさん
垢版 |
2023/05/28(日) 16:09:13.67ID:Ey5hy/ud
簡単な入門書っていいのないよな。
ま、MVVM以外は殆どマスターしたけど。
2023/05/28(日) 17:24:13.18ID:stPo2FFG
ChatGPTで翻訳しなおせばいいのに
479デフォルトの名無しさん
垢版 |
2023/05/28(日) 22:14:38.97ID:uq33XDLB
DeepLならまあまあいい感じに訳してくれるぞ
2023/05/28(日) 23:45:27.42ID:8PnTnKkf
>>479
DeepLはいい感じに訳してくれるけど、うまく訳せないところをしれっと無かったことにすることがあるから注意が必要だぞ
2023/05/28(日) 23:55:20.75ID:Yr3GAtWU
結局自動翻訳を見ながら自分で読むのが確実なのよね、英語すらすら読めないと。
昔みたいに手動翻訳してくれないかなMS
文書の量が増えすぎて投げたんかね
2023/05/29(月) 16:16:13.97ID:lcCgfRMT
添付プロパティのコールバックでプロパティの名前を取得することってできる?
483デフォルトの名無しさん
垢版 |
2023/05/29(月) 20:18:43.30ID:r534mZYP
Bingチャットがコード例付きでできるって言ってんだからできる
2023/05/30(火) 14:32:49.83ID:Q5IAPIF8
コード例を出す
エラーが出る
エラーを聞く
あなたが書いたコードに問題がありますと言われる
485デフォルトの名無しさん
垢版 |
2023/06/01(木) 23:34:28.10ID:kUvd3YEt
Template Studio for WinUIを使ってみたんだけど結構いい感じだな
設定ページを含めたらアプリテーマ切り替え機能が初めから実装されていた
ウィンドウのサイズや位置保存も効いていた
486デフォルトの名無しさん
垢版 |
2023/06/02(金) 07:08:06.80ID:+PuQJuLd
asyncってどう読むんだ。エーシンクって言ってるけど。
2023/06/02(金) 07:37:09.83ID:GwVwzzYM
「エイシンク」やね
2023/06/02(金) 08:33:24.80ID:cIQXWrhW
あしんく!
2023/06/02(金) 10:50:10.19ID:xROQzv6t
あしんくあうぇいとに決まってんだろ
490デフォルトの名無しさん
垢版 |
2023/06/02(金) 11:04:41.91ID:ESJ0W3vc
ェィスィンク → async
アシンク → a sink
2023/06/02(金) 11:06:07.80ID:OwtcjcB6
https://ejje.weblio.jp/content/asynchronous
アリシンクナース
(言い間違えたなら録音し直せよ)
2023/06/03(土) 07:34:20.46ID:4vJ9v8Xm
アシンク、アウェイトでよくね?
2023/06/03(土) 08:06:28.01ID:wtxJED1D
>>492
めんどくさいやつに絡まれてもいいなら
2023/06/03(土) 08:08:07.00ID:wtxJED1D
altなんてネイティブでもアルトって発音するやつ多いのにオルトって言わないとドヤ顔でうんちく垂れるやつ多すぎて
2023/06/03(土) 12:18:53.47ID:MdYn2acu
>>494
ネイティブって雑にくくるけど、各アクセント話者が色々居るだけであって一人が統一感の無い発音してるわけでは無いからな。
2023/06/03(土) 16:47:43.85ID:kPd6kE3f
日本人は、walk は、ウォークだと思っているが、アメリカ人の発音は、
ワークと聞こえることが有る。
逆に、work は、日本人はワークだと思っているが、アメリカ人の発音は、
ウォークと聞こえることが有る。
知らんけど。
497デフォルトの名無しさん
垢版 |
2023/06/04(日) 09:58:55.61ID:TqCMAT8K
日本語の音声の区分けだと分類がないのでそう聞こえるのは当然やね。
喋る側がそもそも文脈でわかるだろっていうので適当になってるのもあるけど。
2023/06/04(日) 10:19:07.87ID:/SPLhkOj
日本語というか日本人の耳のせいじゃ?
聞こえると言うなら聞こえるんだろ

work wˈɚːk(米国英語), wˈəːk(英国英語) ワーク
walk wˈɔːk(米国英語), wɔːk(英国英語) ウォーク

talk tˈɔːk(米国英語), tɔ:k(英国英語) トーク

そのように聞こえるならtalkがタークに聞こえても何も不思議じゃないけどタークに当たる英語がないと言うか知らない
2023/06/04(日) 10:22:14.39ID:KRT+0beQ
そういうのでもなくて、Warningをウォーニングって言ったら、返事の端々で「ワーニング」と強調されるような感じ。
2023/06/04(日) 10:22:39.65ID:KRT+0beQ
あ、被ったわ。そういうこと。
2023/06/04(日) 12:00:22.31ID:SwtmtJS1
workとwalkはワかウォかというよりrの発音の有無が決定的な違い
日本人には音だけで聞き取るのが難しい場合がある
https://dictionary.cambridge.org/dictionary/english/walk
https://dictionary.cambridge.org/dictionary/english/work

このくらい違えば大半の人がわかると思う
https://www.merriam-webster.com/dictionary/walk
https://www.merriam-webster.com/dictionary/work

でもAlt keyを「スズキの新型アルト」と同じように日本語でアルトと発音するのと
ネイティブが /ɑːlt/や /ælt/と発音するのとは全く音が違うから
日本人相手なら一般的に定着してて通じやすい方を使ったほうが良いと思う
ルーターをラウターと呼んだりSQLをシークウェルと呼ぶようなもん
2023/06/04(日) 14:41:20.86ID:5ce6Kc6V
>>498
walk verb (MOVE ON FOOT):
UK /wɔːk/ US /wɑːk/

つまり、アメリカ英語では、walkは、「ワーク」。
日本ではイギリス英語の発音を学ぶので、ウォークだと思っているから
アメリカ英語が聞き取れないのかも。
2023/06/04(日) 14:45:20.63ID:czXaX9Dj
ASUS「エイスースです
2023/06/04(日) 14:52:30.91ID:GWmzaCfT
アザッスだろ!
2023/06/04(日) 15:19:04.57ID:JbtNWfaw
>>501
シークエルはIBMが最初に作ったSQL言語だよ
2023/06/05(月) 04:51:41.18ID:r1jagHFN
オミクロン株が出たときにアメリカのニュース番組でみんな違う発音して混乱してたの思い出した
2023/06/05(月) 15:46:24.28ID:ALnfamwh
とにかく明るい安村のイギリス英語での受け答えはシンプルだったけど完璧だったな
508デフォルトの名無しさん
垢版 |
2023/06/05(月) 21:27:58.61ID:Mg+E0o42
むしろxamlみたいなスクリプト言語が邪魔
2023/06/06(火) 00:00:15.25ID:gmFbmaxP
スクリプト言語じゃねーよ
2023/06/06(火) 00:53:47.15ID:r2tnqpVo
いまだにxamlアレルギーの人いるのか。
jsonかyamlベースのものを追加したら歓迎されたりするのかな。
511デフォルトの名無しさん
垢版 |
2023/06/06(火) 02:52:36.71ID:7M0hlYY1
脳の小さい人でも唯一理解できて自己肯定感を高めてくれたのがWinFormsだったんだろうと振り返る
2023/06/06(火) 13:23:42.87ID:E962Pjai
xaml は <>にこだわりすぎてコメント書き辛いのが糞
2023/06/06(火) 14:41:03.44ID:gmFbmaxP
jsonなどコメント自体を書けない仕様
2023/06/06(火) 14:51:50.08ID:d6hUC8qA
>>512
え゛手書きなの?
2023/06/06(火) 22:40:57.96ID:t5k+pzJS
xamlはxmlだからなあ
インデントだけで1画面食うとかになるとさすがに困る
2023/06/06(火) 23:17:42.80ID:r2tnqpVo
そのへんはコードのリファクタリングと似たような感じだな。
コードブロックを関数に切り出すのと同じようにコンポーネントをUserControlに切り出す。
2023/06/08(木) 13:43:02.62ID:G8lXV+nt
PngBitmapEncoderを非同期で保存する方法はありますか?
await Task.Runだとスレッドエラーになってしまいます
あるいはPNGファイルを非同期で保存する方法を教えてください
2023/06/08(木) 19:40:27.05ID:5Xv9vbbr
>>517
そのままChatGPTに聞けば答えてくれる
519デフォルトの名無しさん
垢版 |
2023/06/08(木) 19:59:36.46ID:4Wbqji4r
何のエラーがでるんだろ
単純に書いただけじゃエラーにならないわ
2023/06/08(木) 20:02:19.04ID:9AnLl3aH
非同期の書き方が間違ってるに1ペソ
2023/06/09(金) 09:35:30.47ID:jd4nlL5X
ChatGPTに聞いたところ、FileStreamのWriteAsyncに置き換えて書き込めました
ありがとうございます
522デフォルトの名無しさん
垢版 |
2023/06/10(土) 01:48:45.17ID:P6Npw7yn
どういたしまして
困ったことがあったらまた尋ねに来てくださいね
523デフォルトの名無しさん
垢版 |
2023/06/10(土) 19:24:56.04ID:qtkeuH21
非同期は難しいね。非同期のつもりが同期してたり。
サンプル拾ってきて動かして挙動確認するのが一番。
2023/06/11(日) 01:55:12.82ID:k29VIOYt
ConfugureAwait 指定すべきか否かの判断が未だによくわからん
2023/06/11(日) 09:34:14.95ID:VM7cO91o
UIスレッドに戻る必要がある場合はConfigureAwait()なしかtrue指定かということは、
MVVMで作っていたらConfigureAwait(false)だらけでも問題ないのだろうか。
2023/06/11(日) 10:38:19.76ID:a75z9osJ
Dispatcherを使う
527デフォルトの名無しさん
垢版 |
2023/06/11(日) 11:54:47.66ID:4FWqmBm0
そいやConfigureAwaitって使ったことないな
528デフォルトの名無しさん
垢版 |
2023/06/11(日) 18:49:49.54ID:Fv6Y3hW8
初めて見たw
2023/06/12(月) 13:48:23.01ID:qz0idZVe
ConfigurrAwait(true) にしようと思っても、意地でも MVVM にしないやつがいるせいでできない。
WinForms か VB でもやってろよバカと言いたくなる
2023/06/12(月) 13:50:33.63ID:qz0idZVe
false だった
2023/06/12(月) 23:34:58.91ID:wuTw7wyz
MVVMでもPropertyChangedしたらUIスレッドでやれって怒られるしどうしようもなくね
2023/06/13(火) 00:24:07.79ID:Y05jGU7w
WPF 限定かもだけど INotifyPropertyChanged.PropertyChanged イベントは
ちゃんと UI スレッドにディスパッチしてくれるようになってる。
非 UI スレッドから VM を操作しても問題ない。

ObservableCollection とかは一工夫いるけど。
(BindingOperations.EnableCollectionSynchronization)
2023/06/13(火) 00:31:49.19ID:1h3p4bkQ
コマンド使えよ
534デフォルトの名無しさん
垢版 |
2023/06/15(木) 15:10:54.81ID:rRvNWqra
Task を直接 await しないで下さい。
Task.ConfigureAwait(Boolean) を呼び出して継続の意図を示すことを検討してください。
https://learn.microsoft.com/ja-jp/dotnet/fundamentals/code-analysis/quality-rules/ca2007
2023/06/15(木) 16:36:37.39ID:yjHL9xaz
全部trueで困ったことないな
falseにして劇的にパフォーマンスあがったという体感もない
ゲームだとシビアなのかもしれんが多分他にやることあるだろう
2023/06/15(木) 17:51:20.80ID:yjHL9xaz
ちょっと実験してわからなくなった
asp.net mvc (クラシック)で自己再帰でthread idとurlをデバッグ出力してDelayするだけのコードを動かした
ConfigureAwait(falae)してないのに戻ってきた後のthread idが変わってる
にもかかわらずコンテキストからurlはちゃんと取れてる
2023/06/15(木) 17:58:34.24ID:yjHL9xaz
continueOnCapturedContext
Boolean
継続をキャプチャされた元のコンテキストにマーシャリングする場合は true。それ以外の場合は false。


元のコンテキストとしか書いてないから同じスレッドに戻る保証はないのか
知らなかった
2023/06/15(木) 18:32:41.75ID:AU7Lfb35
>>532
なにをどーしたらそんな風になるの?
2023/06/15(木) 23:40:26.44ID:akjjH2QK
何もしなくてもやってくれんじゃん
2023/06/15(木) 23:54:36.14ID:rRvNWqra
C#使ってて思うのは、細かいところ気にしなくても、公式ライブラリ自体が色々配慮してくれてるんだよね。
自分も一層心掛けるわ。
2023/06/16(金) 07:08:56.02ID:g6vkIwv2
>>537
同期コンテキストによるので、
・GUIアプリケーション(の同期コンテキスト)だとtrueで元のスレッドに戻る
・コンソールアプリケーション(の同期コンテキスト)だとtrueでも元のスレッドに戻らない
だったかと。
542デフォルトの名無しさん
垢版 |
2023/06/19(月) 19:44:51.70ID:qIw288aX
https://imgur.com/a/KIpYdS4
心電図(?)作ってみた。

ソケットや共有メモリで他機器からデータ受信してリアルタイム表示。
アイコンは飾り。画像貼ってるだけ。

プログラムはじめて40年以上。まだまだ若いもんには負けねーぜw
543デフォルトの名無しさん
垢版 |
2023/06/20(火) 18:14:26.86ID:mfTYjI5Q
やっぱUIデザイナーって専門で必要なのかなと感じた
2023/06/20(火) 18:51:52.94ID:Op03/FKW
>>542
40年でそれはさすがに負けてんぞ
俺が学生の時はオシロスコープのデータ解析は学生が自分たちでプログラム組んでやってたからな
端末はDOSだったわ
545デフォルトの名無しさん
垢版 |
2023/06/20(火) 19:04:46.49ID:UreReEmE
x86 (MASM)でGDC直叩きでやってたこと考えると高級言語で出来ちゃう今が
凄いよな。
2023/06/20(火) 19:15:29.15ID:LcGR2FrV
>>542
グラフ部分の描画はWPF標準のCanvas?
2023/06/20(火) 19:52:46.25ID:FDgZeyem
>>542
良く出来ていると思いますよ。
普通にプロレベルに達していますね。
これだけの物を作れる人は少数派です。
2023/06/20(火) 19:57:28.04ID:FDgZeyem
「俺も同じようなもの作れるわ」
と思っている人の作品見てみると、細かい部分がちゃんと出来て無い
ことが多いです。
細部までちゃんとしているものを作れて無いのに、同じだと思っているだけ。
2023/06/20(火) 20:18:02.54ID:SIobN1qD
悔しそうで草
550デフォルトの名無しさん
垢版 |
2023/06/20(火) 20:58:16.66ID:FA7f5bQf
>>547
>>548
「プロレベル」がなんなのか分からないけど「細かい部分」を見ると、
画質悪いのもあるけどボタン?のアイコンが何だか分からない…
あと、スライダーの部分は数値入力なしで全部スライダーで大丈夫だろうか?
あと、RGBがちょっと邪魔な感じで、右端のボタンが小さくなってて押しにくそう
あと、スライダーとRGBの間にあるチェックボックス?はテキスト位置を上にして他と揃えた方が良さそう
という気がするけどどう?
551デフォルトの名無しさん
垢版 |
2023/06/20(火) 21:13:52.23ID:UreReEmE
https://www.youtube.com/watch?v=sQTcqKGBj1c&ab_channel=MedicalEngineer

これの真似しただけ。アイコン画像もここからコピー。だから解像度も低い。
(アイコンは飾り。画像貼ってるだけ。 って書いておいたけど)
細かいこと言ったら切りないだろ〜。遊びで作ったもんだし。。

canvas にline()で書いてる。
2023/06/20(火) 21:24:25.92ID:iJMYm/hz
白い巨塔のバイタル警告音を思い出す
2023/06/20(火) 22:13:50.37ID:91aDk3JE
WPFでWinUI 使っている人いますか?
なんかやり方がよくわからないんだけど
わかりやすいサイトありますか?
2023/06/21(水) 03:24:12.51ID:i5eSB4dS
>>553
https://learn.microsoft.com/ja-jp/windows/apps/desktop/modernize/host-custom-control-with-xaml-islands#add-a-control-from-the-winui-2-library-to-the-custom-control
2023/06/22(木) 05:58:37.42ID:d9imgnzP
同じようなものは誰でも作れる。
新創造に価値がある。 畢竟、思想に価値があると言える。
2023/06/22(木) 12:08:51.67ID:f4QrThnD
口だけならなんとでも言える
動いてる物を出せよ無能
557デフォルトの名無しさん
垢版 |
2023/06/22(木) 20:18:12.49ID:2/GtWGn8
グラフ表示の事か?
基本的な非同期の知識とcanvasに線が書ければ後は頑張り(?)次第。
手練れは頑張りなんて不要なんだろうけど、基本動作まで自分は2時間は掛かった。
始めはWinFormsだったけど勉強がてらWPF版も作ってみた。
後者の方が綺麗で動きもよかった。
自己満足だが真似する時はどれだけそっくりに作れるかこだわると面白い。
2023/06/22(木) 21:00:45.20ID:CCzLUMWa
WPFの描画機能は規模が大きくなると速度低下が激しいのが残念
SkiaSharp等を使えば一応回避出来るけど
2023/06/22(木) 22:05:57.96ID:oInj3jkO
UWPとWindowsAppSDKだと、Win2DというDirect2Dの公式ライブラリがありますね
一回使ったけど流石に早かった
2023/06/23(金) 00:18:21.51ID:HwDl1XJv
DrawingVisualで描画すれば速いよ
561デフォルトの名無しさん
垢版 |
2023/06/25(日) 09:24:47.83ID:RV4PZadR
SkiaSharp DrawingVisual あまり資料がないな〜
2023/06/25(日) 12:00:19.37ID:bsDOU/Dc
あまり情報がないものでも、ChatGPTが組み合わせて教えてくれる場合がある。
その場合、複数言語のページの内容を混ぜて回答してくれるのかな?
2023/06/25(日) 16:20:15.73ID:Avq8WYKk
DrawingVisualはWPFの機能でMSのサイトに解説とコードサンプルがあり、リファレンスがあるのだから資料がないということはないだろう

DrawingVisual オブジェクトの使用 - WPF .NET Framework | Microsoft Learn
https://learn.microsoft.com/ja-jp/dotnet/desktop/wpf/graphics-multimedia/using-drawingvisual-objects
564デフォルトの名無しさん
垢版 |
2023/06/26(月) 20:38:37.00ID:/ad+dyyW
https://swharden.com/csdv/skiasharp/skiasharp/
ベンチマーク
10万本で0.4secで驚異的。
565デフォルトの名無しさん
垢版 |
2023/06/26(月) 21:30:09.55ID:/ad+dyyW
でもSkiaSharp + OpenGL はハードル高そうだな。
だったらSystem.Drawingの方がいいじゃん。
2023/06/26(月) 22:37:30.04ID:Jb1NpiVn
>>564の比較はWinFormsで
OpenGLで動かしたい場合はSKControlクラスの代わりにSKGLControlクラスを使うだけで良いみたい
WPFの場合はSKElementクラスだけど、これの性能には触れてないな
2023/06/26(月) 22:47:47.73ID:Jb1NpiVn
比較対象が多いページ見つけた
https://swharden.com/csdv/platforms/compare/
568デフォルトの名無しさん
垢版 |
2023/06/27(火) 19:40:57.53ID:ZU8ILpLR
https://blog.emoji-gen.ninja/posts/20190204/skia.html
>日本語のドキュメントに至っては、ほぼ皆無です。そのため、Skia を使って本格的に開発する場合は、ある程度の覚悟が必要です。

なんだと!!ww
ヤフー知恵袋も質問0 だった。。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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