WPF(.NET4.x, .NET Core) GUIプログラミング Part24

■ このスレッドは過去ログ倉庫に格納されています
2019/12/09(月) 12:36:14.49ID:9LsUsH++p
Windows Presentation Frameworkについて語るスレ。

前スレ
WPF(.NET4.x, .NET Core) GUIプログラミング Part23
https://mevius.5ch.net/test/read.cgi/tech/1557960752/

関連スレ
Windows 10 UWPアプリ開発 Part 2
http://mevius.2ch.net/test/read.cgi/tech/1499658092/

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2020/05/20(水) 16:43:42.14ID:6j7TSTe10
SwiftUIを丸パクリじゃねーか
2020/05/20(水) 18:05:19.19ID:IaKWAlqDM
>>279
VとVMの間の分離が皆無な時点で全然違うと思うが
2020/05/20(水) 18:23:46.54ID:IaKWAlqDM
あと、勘違いしてるようだがイベント発生時にはコンポーネント(たぶん279のいうVM)自身のステートを更新するんじゃなくてMを更新するんだぞ
その結果としてビューの更新が走ってbody関数が呼ばれて画面に反映されるというのが本来の流れだ
サンプルコードではそのへん省略してコンポーネントに直接ステートを持たせてるようだが、原則としてはコンポーネントは可能な限りステートレスにするんだよ
もちろんコンポーネントはVMみたいにMのプロパティを猿のようにラップする必要もなくて、究極的には単純にMを入力したらDOMを返す純粋関数になるのが理想
2020/05/20(水) 18:57:17.69ID:1IOTYjbV0
>>283
いや、何を更新するかそこは自由に選べるから...

イベント発生時にビューモデルのメソッド呼べば、ビュー,ビューモデル間のデータフローが双方向になり今までの通りにMVVMになるし、他のなんたら?モデル呼べば例えばfluxになったり

flutterもそうだが別に限定されてない
2020/05/20(水) 19:03:14.50ID:1IOTYjbV0
>>282
それは君が分離してないだけ
2020/05/20(水) 21:35:52.90ID:60/2mOaG0
MVUってことはElmみたいな感じになるのかしらん。
F#との親和性も上がるといいな。
287デフォルトの名無しさん (ワッチョイ 9a6a-crVl)
垢版 |
2020/05/20(水) 21:42:38.32ID:XSjOvyTE0
>>286
https://thomasbandt.com/model-view-update
2020/05/21(木) 13:57:53.85ID:P/deDe4f0
中途半端な絵空事を追いかけるよりExcelをさっさと.Net化して欲しいわ
いつまでCOMやねん
2020/05/21(木) 15:00:00.53ID:jDxzpvC30
アホやなぁ
2020/05/21(木) 15:09:47.86ID:4VRnGZ6Na
モバイル版は既にかなりの部分がC#なんじゃない?
Win版を置き換えることはないだろうけど、既にWin版のOfficeの一部にも.NETは使われているし、
今後は本体に.NET Coreが組み込まれてC#で書かれたコードが増えていくことも十分考えられる
プラグイン機構のことを言っているのなら、そもそも現在MSが推進しているWinRT系のRPCの仕組みはCOMベースなので、仮に今後新しい仕組みに置き換えられるとしても.NETベースになる望みはない
2020/05/21(木) 15:42:08.73ID:9+MRXYOc0
UI部分はすでに全部React Native Windowsだろ
2020/05/22(金) 00:28:36.86ID:GK58a6PU0
WPFでなくてすまないんだが、

UWPでデバッグしようとしたら、デバッガが無い風のメッセ出て
上手く動かないんだが。
VS2017のcommunityっす
2020/05/22(金) 00:31:55.75ID:vS7paOX80
UWPってなーに?
2020/05/22(金) 00:46:04.97ID:Gu1hoeqg0
>>292
Windows 10 UWPアプリ開発 Part 2
https://mevius.5ch.net/test/read.cgi/tech/1499658092/

質問するならメッセージは正確にネ!
2020/05/22(金) 12:48:18.19ID:lbX1xonYM
>>293
Ultra Windows Powet
2020/05/24(日) 16:56:50.37ID:YD2G6Bau0
完全に趣味でプログラムやってて
WPFに手を出してみようと思い↓のサイトのドキュメントで学習してたんだけど
http://kisuke0303.sakura.ne.jp/blog/?p=340

↓の106ページ目のコード動かしてみても図の通りにコンソールにファイルパスが表示されず「コールバック処理を行います」とだけ表示される。
http://kisuke0303.sakura.ne.jp/blog/wordpress/wp-content/uploads/2016/08/4843696230c1698ad8ff7d086b998344.pdf

でもサンプルのコード見る限りだとこれが正常な動作な気がするんだけど(ファイルパスを表示させる部分の記述が見当たらないので)
俺が何か見落としてるのだろうか。
2020/05/24(日) 20:12:23.79ID:3qlZzirT0
wpfのチュートリアルはかずき大先生のページ以外は駄目だよ〜
2020/05/25(月) 06:07:47.12ID:ylkOF+xS0
>>296
ぱっと見だと図のような表示コードないね
多分途中で書き換えたのにコード側に反映忘れてる
まあ本でも誤植なんてしょっちゅうだし自分で合うように書き換えよう
2020/05/25(月) 06:39:47.21ID:ylkOF+xS0
WinUI 3も結局UWPみたいなタブ向けUIなんだな
Fluentだなんだか知らないけどデスクトップ向けもうたうならちゃんとレガシー()コントロールも用意して欲しい
2020/05/25(月) 17:09:39.62ID:quw8Fr750
レガシー必要なのってもう業務系アプリくらいだからなあ
2020/05/25(月) 22:50:42.06ID:yXchdJnh0
>>300
まあ業務系アプリはいつまでたっても一定の需要はあるからな(´・ω・`)
2020/05/26(火) 08:29:06.51ID:2WnNvGhAa
>>300
業務系アプリがなくなるってあり得なくね?
2020/05/26(火) 08:46:30.39ID:O4WcavVK0
>>300
趣味で物作っている訳じゃないので
2020/05/26(火) 08:57:52.50ID:iAXb1ypnM
業務系はWeb化してきてるし
webformだからレガシーだけどな
2020/05/26(火) 09:00:13.35ID:xP2EobkM0
>>304
デスクトップアプリはなくならないよ
需要は減るけどね
2020/05/26(火) 10:54:31.21ID:sswBOnn3a
お手軽だからね
307デフォルトの名無しさん (アウアウウー Sac7-LjTx)
垢版 |
2020/05/26(火) 10:59:33.02ID:6ileE2Zca
今時はそうでもないわ
クラウドがあるからWebの方がお手軽
2020/05/26(火) 11:16:04.18ID:m1O5KGL0d
場合によるやろ
2020/05/26(火) 11:21:18.41ID:iAXb1ypnM
winformが一番お手軽
2020/05/26(火) 13:22:34.05ID:pBlDnMjv0
当初から散々ゴミと言われたとおりWPFは普及せず、
クラウド化しても企業の効率なんて当然上がらず、社員は不便を強いられ、
データを吹っ飛ばれさてから黙れされた連呼する自称SEたち。

ここの住人は馬鹿ばかりだなw
2020/05/26(火) 14:47:17.82ID:2xWZOgbyM
お前も含めてだけどな
2020/05/26(火) 23:15:16.03ID:d+nvHOzJ0
そう。俺もお前もだ
2020/05/26(火) 23:17:39.59ID:+nwpuOj70
おまいら、飲みにでも行け
2020/05/27(水) 08:54:48.80ID:32H/szl0a
>>313
コロナに油断するな!
2020/05/28(木) 17:33:33.18ID:epMUI4Mx0
.net FrameWorkのOWINで
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Login/Index"),
CookieName = ".AspNet.SharedCookie",
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<IdentityUserManager, IdentityUser>(
validateInterval: TimeSpan.FromMinutes(0),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
},
TicketDataFormat = new AspNetTicketDataFormat(
new DataProtectorShim(
DataProtectionProvider.Create(new DirectoryInfo("C:\\TEMP"),
(builder) => { builder.SetApplicationName("SharedCookieApp"); })
.CreateProtector(
"Microsoft.AspNetCore.Authentication.Cookies." +
"CookieAuthenticationMiddleware",
"Identity.Application",
"v2"))),
CookieManager = new ChunkingCookieManager()
});
System.Web.Helpers.AntiForgeryConfig.UniqueClaimTypeIdentifier = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name";;

で認証して別の.net Core2.1アプリに遷移するんだが、
.net Coreアプリ内でこの認証クッキーをidentityに復号してsigninしてUser.identityを使いたいんだが方法はあるのか?
認証.net Core自体の認証を完了させたい感じです。
伝われ〜
2020/05/28(木) 19:37:43.46ID:epMUI4Mx0
string authCookkiValue = string.Empty;
HttpContext.Request.Cookies.TryGetValue(".AspNet.SharedCookie", out authCookkiValue);
var ticket = authCookkiValue;

var protectionProvider = DataProtectionProvider.Create(
new DirectoryInfo(@"C:\TEMP\"),
(builder) => { builder.SetApplicationName("SharedCookieApp"); });
var dataProtector = protectionProvider.CreateProtector(
"Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationMiddleware",
"Identity.Application",
"v2"
);

var ticketFormat = new TicketDataFormat(dataProtector);
var test = ticketFormat.Unprotect(ticket);
で解決しました。

スレ汚し失礼しました。
2020/05/28(木) 21:04:16.26ID:AwUHmNLp0
他人のコードを読みたくないのはボクだけじゃないはず。
2020/05/28(木) 21:06:50.75ID:wn0+e+em0
move ソースファイル名 Null
2020/06/29(月) 09:07:48.77ID:j4QcCIztd
vs2019でwpf、.NET Core 3.1で作成したアプリのインストーラを作成したいのですが参考になるサイトありますか?

WinFormsと同じようにやってみたのですがプロジェクト出力でプライマリ出力を選ぶと.dllと.runtimeconfig.jsonしかなくexeが存在しません
元のプロジェクトがおかしいのでしょうか?
2020/06/29(月) 09:36:38.17ID:NtraNE7CM
>>319
やって見たけどプライマリ出力を参照させるとそうなるねえ。
依存関係がうまく抜けてないっぽい。
今のところはプライマリ出力をやめて発行させてpublishフォルダを参照するしか無いかも。
stack overflow辺りには何か情報があるかも?
2020/06/29(月) 10:01:33.89ID:NtraNE7CM
.net coreアプリはmsiじゃなくてmsixパッケージを使うようだな。
2020/06/29(月) 10:17:30.05ID:j4QcCIztd
>>321
ありがとうございます
msixを調べてみます
2020/06/29(月) 11:14:55.57ID:gOjcE5IyD
msixにするとアプリによっては動かなくなるから気をつけて
行儀のいいアプリなら問題ないと思うけど

dotnet publishの出力先をコピーしてexeのショートカット作るだけのインストーラーが何かで作れるなら、そっちのほうが問題はおきにくい
2020/06/29(月) 11:43:14.37ID:NtraNE7CM
「実行ファイルパス問題」ってやつかな
2020/06/29(月) 15:39:11.51ID:j4QcCIztd
>>323
そういう問題が起きる可能性があるのですね。

プロジェクト出力でプライマリ出力ではなく項目の公開を選択でもいいのかな?
それらしいのが作れたけど…
2020/07/04(土) 02:53:49.50ID:yoyu8c1l0
BlazorはCSSを各コンポーネント毎に好きなの割り当てできるようなバージョンアップは予定してるのかな
ちょっと使い難い
2020/07/08(水) 14:07:36.01ID:oYyxJxRd0
先月のBuild 2020開催期間中、Microsoftは、デバイスネイティブなアプリケーションを開発するためのマルチプラットフォームフレームワークである.NET MAUIのロードマップを発表した。新フレームワークはXamarin.Formsの進化形に相当し、Android、iOS、macOS、Windows用のネイティブ機能を提供する。
https://www.infoq.com/jp/news/2020/07/maui-multi-platform-ui-dotnet/
2020/07/08(水) 15:24:17.95ID:Kr2gnfN5M
UIはデバイスごとに作ったほうが簡単じゃねーの?
329デフォルトの名無しさん (ワッチョイ 0d01-dDBt)
垢版 |
2020/07/16(木) 01:14:38.86ID:163xTq/Q0
はじめからForms全力でよかったんや・・・
330デフォルトの名無しさん (ワッチョイ 81da-RnSF)
垢版 |
2020/07/27(月) 10:39:34.80ID:sbz77iMW0
キターーー .NET 5.0 RC かな?
2020/07/27(月) 10:59:18.14ID:rzcPx0wdM
preview7じゃないの?
2020/07/27(月) 11:40:55.44ID:9Xn50/5g0
http://var.blog.jp/archives/69202816.html
未だに大部分のプログラムは Win32(というかMFC)で、
WPFを使ってる中で一番有名な VisualStudio は劇遅。
333デフォルトの名無しさん (ワッチョイ 4901-oJ29)
垢版 |
2020/07/28(火) 18:03:05.87ID:hKAsfXZZ0
VS級のものがあまりないからでは
2020/07/28(火) 18:16:39.56ID:2hGB7urq0
>>332
リンク先ではVisualStudioはWPFにしてはすごく軽くて十分に快適って書かれてる(C++とのハイブリッドも疑ってる)のに
何故激遅に書きかわるw
2020/07/28(火) 18:41:04.12ID:xreCiHzA0
>>334
「WPFの割には軽い」
と言っているだけで、現実には激遅だからだ。
2020/07/28(火) 19:27:19.79ID:EEBQNrWer
VSは.net版に変わったら非常に遅くなったよ
それだけは譲れないw
サードパーティー製のコンポーネント使ってると聞いた

> WPFにしてはすごく軽くて
WPFでは激遅になると思ってたらそこまで遅くない!と言う意味であると体感している

今でもc++版に戻ったら非常に速いと思う
2020/07/28(火) 19:33:19.05ID:3p32kQjLM
JavaのIDEと比べたらチョッパヤだろ
2020/07/28(火) 20:49:33.29ID:mqD6IZiK0
2015が一番重かったけど、2017→2019とどんどん軽くなってきたよね
2020/07/28(火) 20:52:36.83ID:mB6yyIIz0
そんなゴミと比べないでくれ
悲しくなってくる
2020/07/28(火) 21:58:41.19ID:xXl4dtBj0
今のVS十分軽いしさっさと古いクソPC投げ捨てて新しいの買ってこい
2020/07/28(火) 22:29:22.83ID:R16GmJU50
さっきDocker Desktop入れたらUIがWPF製だったわ
342デフォルトの名無しさん (ワッチョイ 0163-xBvm)
垢版 |
2020/08/02(日) 20:28:06.49ID:BN6q7uRr0
>>334
たしかにVSのタブやページ切替とかの反応は普通のWPFアプリと全然違うんだよな
なんらかのファクターXがあると考えるのが合理的
一般的WPFアプリには慢性的なもたつきが発生する
343デフォルトの名無しさん (ワッチョイ 01e6-LxoB)
垢版 |
2020/08/02(日) 20:46:36.40ID:B8kL4fh30
教科書通りにMVVMなんてしてたらあきまへんって事かな?
2020/08/02(日) 20:50:09.94ID:UcfUDTUk0
.NET CoreのWPFと.NET FrameworkのWPFでレスポンスに違いはある?
345デフォルトの名無しさん (ワッチョイ 7a6a-xE3T)
垢版 |
2020/08/02(日) 21:40:04.40ID:q/qx3qt30
>>342
自分で作ってるWPFアプリと差を感じないけどなあ
2020/08/02(日) 21:59:33.90ID:TA4SUPRta
>>342
VSはWPFの低いレイヤだけを使って独自のフレームワークを構築している
WPF標準の低品質なコントロールはダイアログにしか使っていない
2020/08/03(月) 01:12:41.51ID:9/tK9gy10
普通のWPFって、あのクソ重いVSより遅いって、どんだけ遅いの。
2020/08/03(月) 01:15:53.79ID:F0bbTFGB0
WPF登場が2006年、VSのUIに採用されたのがVS2010から。

自分で作ったGUIライブラリなのに自社ツールに組み込むのに4年もかかるとか
どんだけ設計がゴミだったかがよく分かる。
2020/08/03(月) 03:53:53.52ID:N8X3JloH0
>>346
むしろその独自のフレームワークを公開してくれよ
2020/08/03(月) 13:18:21.79ID:F0bbTFGB0
一方、MFCは、MS-Officeで実装後、MFCで提供される。

机上の空論 → 実装 → 使い物にならない
実装しながらブラッシュアップ → 使い物になる

よく話はやはり実際そうなのだ。
2020/08/07(金) 00:44:47.58ID:eMMnS8Srr
昔ロータスかどこかが表計算ソフトでどうやってもofficeの速度が出ないので調べたら非公開API使ってた!
マイクロソフトは不公平だ!と言ってたらしい
2020/08/07(金) 00:57:06.91ID:3pmlvrNK0
都市伝説か勘違いしてるか
Lotus123の対抗はexcelじゃなくてマルチプランだ
353デフォルトの名無しさん (ワッチョイ 29e6-tzTG)
垢版 |
2020/08/07(金) 06:55:57.61ID:W1K5XVv60
三四郎「……」
2020/08/07(金) 10:33:41.03ID:kviOmVZrM
>>352
馬鹿なの?
普通に考えて1-2-3のWindows版の話だろ
2020/08/07(金) 13:52:01.46ID:ARIlA7ICM
>>354
馬鹿なの?
undocumented windows読んだ事無いのか
2020/08/07(金) 14:16:49.97ID:SYieViuR0
>>355
はあ?
> Lotus123の対抗はexcelじゃなくてマルチプランだ
の話なんだがw
2020/08/07(金) 18:40:21.36ID:85+YUIaur
自分が買ったPCにLotus123 windows版を入れてたけどなあ
358デフォルトの名無しさん (ラクッペペ MM8b-tzTG)
垢版 |
2020/08/07(金) 18:57:57.01ID:k8/Tepp0M
win95と同時に32bit版Excelだしやがったから
サードパーティじゃ間に合わん
3.1のころはいい勝負してたと思うよ
2020/08/07(金) 20:07:48.20ID:gaDKKGiVM
>>358
> 3.1のころはいい勝負してたと思うよ
そうだったっけ?
1993年にFMV買った時はWord/Excelと一太郎/三四郎のどっちかしか無かったような記憶があるが…
2020/08/11(火) 00:53:29.18ID:7RgGpk/H0
Excelで1900年がうるう年バグってるってのは有名だけどこれってLotus123との互換用なんだよな
もっというとLotus123側もうるう年判定を簡略させるための仕様だったと
2020/08/11(火) 07:47:24.74ID:xS/9Ss0TM
undocumented APIを検出するtool
でwindows3.xの頃のMS-APPは
インチキしてないって話しだったな。

インチキしてLotusクラッシュさせたのは
DOS1.25の時代だね
2020/08/11(火) 15:07:51.33ID:pA06ApZK0
今は、そういう嘘より、FUD合戦が流行っている。
「セキュリティーで危ないから、WindowsをUpdateしろ、LinuxよりWindowsの方が安全。」
「セキュリティーで危ないから、セキュリティーソフトを買え」
「セキュリティーで危ないから、ソースがないソフトは駄目。オープンソースを使え」
363デフォルトの名無しさん (ワッチョイ be2d-4h4I)
垢版 |
2020/08/12(水) 14:54:17.67ID:Q5zqH5GF0
最低限のリテラシーすらないアホを虐殺した方が早い
364デフォルトの名無しさん (ワッチョイ 9f01-3Lde)
垢版 |
2020/08/23(日) 16:16:47.80ID:OADC3r990
BindingされたCheckBox.IsCheckedはFallbackValueもTargetNullValueも利きませんが
どうやって初期値Trueを入れたらいいのでしょうか?
2020/08/23(日) 21:29:20.50ID:OADC3r990
解決しました
2020/08/25(火) 07:57:37.39ID:CNwadlb30
ちゃんと自決しろよ!
2020/08/25(火) 08:50:57.77ID:NQev4bWfa
おもろ
368デフォルトの名無しさん (ワッチョイ 7901-VQ5f)
垢版 |
2020/08/26(水) 17:12:16.09ID:+vm/3sbc0
Windows 10/.NET Core 3.1
TextBoxにintのプロパティをバインドすると数字以外にエラーを出してくれるようにできるが、
TextBoxのTextを手動ですべて削除したときに最後に有効だった数字がプロパティ側だけに残るのは不具合なのかな。
数字が入ってないのに、その数字で計算されてしまう。
intは空になれないからこうなっているのだと思いint?でも試してみたが同じ結果だった。
intのプロパティにバインドするのは罠?

TextBoxに123と入力されている場合:
12を消して、最後の3を消すと見た目上のTextBoxが空になるが、バインドしたプロパティには3が入っているものとされて扱われてしまう。
そして、3が入っているものとされているため、プログラム上で空になっている場合を処理できない。
369デフォルトの名無しさん (エムゾネ FF22-yRqa)
垢版 |
2020/08/26(水) 17:19:57.66ID:dZW3ATMVF
3 から先に消して
2 消して
1 を最後に消しても一緒
2020/08/26(水) 17:37:06.35ID:KgZIVvH1d
stringにしてtryparse
371デフォルトの名無しさん (ワッチョイ 7901-VQ5f)
垢版 |
2020/08/26(水) 19:25:24.29ID:+vm/3sbc0
int諦めてstringにして検証部分書きました。
intのプロパティにバインドしたらそれだけで介護してくれると思わせて、実は手抜き介護だった。
2020/08/26(水) 22:45:13.55ID:sGzQHkFA0
数値型バインドするときはコンバータで細工するとか必要だったかな
373デフォルトの名無しさん (エムゾネ FF22-yGMV)
垢版 |
2020/08/27(木) 10:31:44.59ID:H/WqeZOsF
validator
374デフォルトの名無しさん (JP 0H4a-uR+4)
垢版 |
2020/08/27(木) 12:33:17.39ID:vXpNqxXHH
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

VM + ASM を書いた (C#, DX) * x86 ではない!
simulationライブラリで純粋な関数式プログラミングをする
UIライブラリ (C#, 2D) を作ったよ
連続と離散を統一した!
4Dエンジン
matrixのライブラリ
ある強力なFor関数
SQLライブラリ

VM + ASM のダウンロード
ttp://up.x0000.net/files/TSimulang.zip
2020/09/01(火) 02:46:39.17ID:vwihzMdy0
そろそろ普及する予感
2020/09/02(水) 15:28:55.36ID:8b/Zi7QA0
14年目の正直
377デフォルトの名無しさん (アウウィフ FF8b-th+2)
垢版 |
2020/09/02(水) 15:38:08.91ID:PicHUi2jF
Xamarin の本買うかどうか迷ってる
https://gihyo.jp/book/2017/978-4-7741-8895-9
378デフォルトの名無しさん (ワッチョイ 0701-q/EU)
垢版 |
2020/09/02(水) 16:07:48.75ID:NYistFqT0
WPFの経験があるならXamarinなんて簡単だろう
2020/09/02(水) 16:11:54.09ID:YvoVnPDv0
Xamarinって結局OSの差分吸収しきれてないんじゃなかったか?
2020/09/03(木) 07:15:19.61ID:CV24xPe20
みんな挫折した経験だろうな
381デフォルトの名無しさん (アウウィフ FF8b-th+2)
垢版 |
2020/09/03(木) 10:11:39.97ID:DK3Ul6vKF
ちょまど攻略に挫折
■ このスレッドは過去ログ倉庫に格納されています