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

■ このスレッドは過去ログ倉庫に格納されています
2022/10/29(土) 11:34:34.12ID:OGteGRtm
WPF(Windows Presentation Foundation)について語るスレ。

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

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

コードを貼る場合は以下のサイトの利用をお勧め。
https://ideone.com/
270デフォルトの名無しさん
垢版 |
2022/11/21(月) 05:22:32.76ID:jDeUVvYe
Styleを学んでください
271.NET MAUI HighSchool
垢版 |
2022/11/21(月) 09:22:55.00ID:DkIa5QxJ
DataGridColumnにx:Nameだね
272デフォルトの名無しさん
垢版 |
2022/11/21(月) 14:40:33.74ID:6Crx1mAE
ありがとうございます。以下のコードで設定できました。
皆さんはどの本でxamlとかwpfを勉強しましたか??いいのが見つからなくて困っています

xaml
<DataGridTextColumn x:Name="name"
<DataGridTextColumn.EditingElementStyle>
<Style TargetType="TextBox"

C#
name.EditingElementStyle.Setters.Add(new Setter(TextBox.MaxLengthProperty, 100));
273.NET MAUI HighSchool
垢版 |
2022/11/21(月) 14:58:20.08ID:DkIa5QxJ
ネット記事
2022/11/21(月) 16:20:08.58ID:jmXTqtKS
Microsoft Learn
https://learn.microsoft.com/ja-jp/
275.NET MAUI HighSchool
垢版 |
2022/11/21(月) 16:25:49.21ID:DkIa5QxJ
クソ古いけどこういうちゃんとした専門家が連載記事書いてるところは参考にしてた
https://atmarkit.itmedia.co.jp/ait/subtop/features/dotnet/app/spv/introwpf_index.html
2022/11/21(月) 16:55:47.51ID:KDDXOYAA
>>275
ここは俺も参考にしたな
慣れるまでは会社のプリンタで全ページ印刷して辞書代わりに使ってた
277デフォルトの名無しさん
垢版 |
2022/11/25(金) 18:36:20.43ID:+fM36QUo
XAML Stylerっていう拡張機能は便利だな
しっかり整うから無駄な時間が減る
278.NET MAUI HighSchool
垢版 |
2022/11/25(金) 20:27:51.26ID:SQhAXb/D
>>277
いいね
プロパティの順番とか気になってたけどめんどくさくてそのままのときとか多かったんだ
これ使ってみる
2022/11/26(土) 11:06:15.13ID:1ldKsJnP
縦に長くなるのは避けたいんだよな
最低限x:Nameはタグと同じラインにしてほしいな

普段はタグとタグ名だけ表示してクリックしたら詳細が出るほうがいいんだけど
280.NET MAUI HighSchool
垢版 |
2022/11/26(土) 11:54:12.22ID:Ja07f46G
>>279
そういうのってこのアドインで調整できるんじゃねぇの?
281.NET MAUI HighSchool
垢版 |
2022/11/26(土) 15:17:01.29ID:Ja07f46G
ツールタブの一番下にあるオプションにXAML Stylerの項目追加されてたからそこで設定するみたいだぞ
https://imgur.com/gQ0NS2w.jpg

これはどの項目をどの順番に並べるかを指定するところだと思われる
x:Classが最上位か、、、

このへんで一番上の物は改行しないとか指定できるんじゃね?
下のボックスに説明あるけど英語だからわがんね
2022/11/27(日) 00:08:16.49ID:b0dtQ2k7
コードビハインドに記述したプロパティをバインドすることってできますか?
2022/11/27(日) 01:11:29.44ID:VXCnX9/B
コンストラクタで
DataContext=this;
ってやれば動きそうだけどやったことねーな
284.NET MAUI HighSchool
垢版 |
2022/11/27(日) 01:26:28.71ID:YoYicuFz
>>283
やってみた
https://youtu.be/3aZL4aQ9vPw
普通にいける
285.NET MAUI HighSchool
垢版 |
2022/11/27(日) 01:27:38.96ID:YoYicuFz
thisってやったらページのプロパティ全てBindingContextになるな
286.NET MAUI HighSchool
垢版 |
2022/11/27(日) 01:29:49.63ID:YoYicuFz
そのプロパティだけバインドさせたいってだけならBindingContext=プロパティ名にして
XAMLのところで{Binding プロパティ名でいける}
オブジェクトの中のプロパティを使いたい場合は{Binding オブジェクト名.プロパティ名でいけたわ}
2022/11/27(日) 17:09:02.91ID:zizz/yv+
質問がざっくりし過ぎなんだ

仮に自前のUserControlにプロパティを作ってそれをバインディングできますかだとして
それが中に向けてなのか外に向けてなのかも不明

自作コントロールがあって外部向けにTextプロパティ作ってそれが中のlabelのプロパティにバインドとか言う感じに見える
2022/11/27(日) 20:04:48.27ID:j+2lOx/H
>>283
>>284
それでできるんですね
バインドとコードビハインドで作るならそれで十分そう
2022/11/28(月) 10:46:08.62ID:Agm2AJo1
>>288
OneWayのみでいいなら、BindingProxyが使えるよ。 MAUIではFreezable classを自分で書くことになるけど。
DataContextをビハインド設定でBindingProxyでViewModelその他とか・・・
2022/12/01(木) 18:01:03.73ID:UaT6Ju5t
DapperのQueryでとったデータ(dynamic型)をそのまま
DataGrid(wpf)につっこむと列がダブってしまうんですが
なにか楽チンな対処法はありませんか?
2022/12/01(木) 20:09:52.70ID:MXBkvJK6
>>290
DISTINCT
2022/12/02(金) 00:12:35.02ID:Bt79K2Bt
webみたいに疑似的にモーダルダイアログを出すのってどう思う?
素直にモーダルダイアログ出しとけって感じ?
2022/12/02(金) 10:46:22.91ID:CQhUYfnN
ContentDialogのことなんだろうが、稀に発生するダイアログが画面の裏に表示されて押せなくなるということが物理的にないだけでも優秀だ
2022/12/02(金) 10:52:18.01ID:F90iWgnv
>>291
重複行ではなく列です
AutoGeneratingColumnsで作成される列が2つ表示されます
2022/12/08(木) 19:39:15.92ID:7sx7/7eA
メニューとかを付けたWindowに画面の中身を定義したユーザーコントロールを追加したいんですが、どのようにするのがスマートですかね?
無難にWindowの一番下のGridのChildrenにAddするのがいいんですかね?
2022/12/09(金) 09:42:01.65ID:6fkte2jG
ContentControl
2022/12/09(金) 16:29:47.92ID:itlB2FBH
WPFのXAMLで、部品の幅や高さを「残り画面いっぱい」にする方法ってありますか?
Androidのxmlでいうところの、fill_parentに相当する物を教えてください
298.NET MAUI HighSchool
垢版 |
2022/12/09(金) 16:50:43.95ID:gQLJ96r5
>>297
HorizontalAlignment=stretch
とかで行けます
2022/12/09(金) 17:22:28.18ID:itlB2FBH
言葉足らずですいません
Grid.RowDefinitionsやGroupBoxの中だからか、Stretchでは追従してくれませんでした
300.NET MAUI HighSchool
垢版 |
2022/12/09(金) 17:38:20.80ID:kAYpLKl/
じゃあそのグリッドやグループボックスのアラインメントをストレッチにすればいいのでは?
2022/12/09(金) 17:40:46.95ID:6wQe2Y2i
>>299
DockPanelを使って、残りいっぱいにしたいのを最後に入れる
DockPanelのLastChildFillプロパティはtrue(既定値)
2022/12/09(金) 18:22:42.76ID:itlB2FBH
>>301
DockPanel良いですね!
方向は四方向のようですが、右下(Right + Bottom)のような指定は出来るのでしょうか?
2022/12/09(金) 19:08:18.86ID:RZutnAlS
デザイナー使わずにvscodeとかで頑張ってんの?
マウスでポチポチで出来るのに
2022/12/09(金) 19:14:15.38ID:6wQe2Y2i
>>302
そういうのは出来ない
DockPanelのレイアウトはやってみれば分かると思うけどちょっとパズル的
場合によっては入れ子にする
2022/12/09(金) 20:04:42.78ID:itlB2FBH
>>304
Formsのアンカーみたいに出来るかもと思ってしまいました
右下が必要な時は、入れ子にして組み合わせます
2022/12/09(金) 20:11:51.65ID:6wQe2Y2i
>>305
Left(左)、Top(右上)って順番に配置すれば残りは右下になるけどね
2022/12/09(金) 20:35:38.71ID:0f6uraRf
>>305
クリックすればできるっしょ!

幅なしでマージンのみ指定
2022/12/10(土) 06:52:30.14ID:q9TRgP4i
DockPanelはタブ順がいまいちになるからあんまり使わない。
Gridをマウスでポチポチして区切ってその中にStackPanel入れるのが基本。
309デフォルトの名無しさん
垢版 |
2022/12/10(土) 16:32:37.30ID:HHTsRwyh
>>299
Grid.RowDefinitionsのhieghtを”*”にすれば残り画面いっぱいになるよ
2022/12/10(土) 16:41:54.02ID:a9Jjv71r
height
2022/12/10(土) 18:44:18.88ID:vevfscj1
残り幅いっぱいってどれもこれもめんどくさいよね

WPFは統一的な仕組みがなくコントロールの挙動はその都度ググって正解を探すしかない
使い慣れてないコントロールを使うたびにあれってなってググったり過去のプロジェクトを開いて確認したりさせられる
itemtempleteとかもそう…
312デフォルトの名無しさん
垢版 |
2022/12/11(日) 13:43:41.76ID:yD7729s9
gridオンリーでやれば統一的なのかもしれない
2022/12/11(日) 15:05:49.80ID:T84lMB8C
Gridってよくわからなくならない?
XAMLだけで編集すると特に
2022/12/11(日) 18:13:03.40ID:oV6VCzHt
Gridシャワーでわからなくなる人はBootstrapやFoundationでのCSSデザインは無理だな。
2022/12/11(日) 18:57:16.27ID:TMAZCbUc
glidにしたところでitemは最大幅にはならないよ
316デフォルトの名無しさん
垢版 |
2022/12/11(日) 19:03:59.04ID:Z4+YwDcF
適当にgridでくぎってコントロール張り付け。これでOK。
317.NET MAUI HighSchool
垢版 |
2022/12/11(日) 19:26:41.83ID:ih39IcFX
>>314
わかる
HTMLとCSSってマジでむずいよな
バグり方半端ないし
XAMLが安定安心だわ
318.NET MAUI HighSchool
垢版 |
2022/12/11(日) 19:27:53.02ID:ih39IcFX
Blazorやっててロジック部分のC#いじるときめっちゃ面白いし楽しいのにHTMLやCSSいじるときが一番しんどかったわ…
2022/12/11(日) 19:33:10.67ID:3KSDf1Hc
デザイナーの方がITスキル高いからね
2022/12/11(日) 19:37:24.32ID:HcYuyEaD
デザイナーきたな
2022/12/11(日) 20:32:46.67ID:GglWfKZ4
Ruby on Rails 7 のデフォルトのCSSフレームワークは、
Bootstrap, Bulma, Tailwind, PostCSS, Dart Sass の5つ

Bootstrapが多いが、Tailwindも増えてきた

CSSが分からない香具師は、これらのフレームワークを使えばよい
2022/12/11(日) 20:38:13.88ID:cxoRZ6Df
cssわからないならcssフレームワーク使えないだろ
323.NET MAUI HighSchool
垢版 |
2022/12/11(日) 21:02:37.38ID:hiewkTHT
>>322
これ
2022/12/11(日) 21:05:28.43ID:3KSDf1Hc
そこは解っとんのかい!
2022/12/12(月) 14:54:46.15ID:HJTn4+p0
>>317
HTMLデザインという視点でやってればな。 ベタポトWinFormみたいなもの。
HTMLはレイアウトのアクターを並べるだけであって、デザインはCSSでやる。
だからCSSデザイン。
2022/12/12(月) 15:07:28.77ID:wywn97Kl
外観や視覚的な要素のことだけを指して「デザイン」と呼ぶおじさんが多すぎる
2022/12/12(月) 17:09:05.62ID:H8Pyj0AO
はい!

デザインおじさん登場!
328デフォルトの名無しさん
垢版 |
2022/12/12(月) 17:20:21.22ID:4QdRWR13
おじさんというか、ジャップな。
欧米はちゃんと設計部門=Design departmentだから。
「Design」と聞いてAesthetic designのみに捉えてしまうバカはジャップだけ
2022/12/12(月) 17:25:04.44ID:qdPeVaaE
あなたはジャップではないんですか
2022/12/12(月) 17:37:55.36ID:83va22zf
「デザイン」って日本語で書いてるのに何で欧米の事情もってくるんだよ
馬鹿か?
331デフォルトの名無しさん
垢版 |
2022/12/12(月) 18:14:39.43ID:gfalYFvl
やっぱ「UIデザイン」を見た目だけのものと捉えてる人もいるのかな
何十年経ってんだって話だけど
2022/12/12(月) 18:18:39.68ID:5wAqak8D
元の語と若干意味が違ってくる。借用語というのはそういうものだ
>>328 はプログラミング以外も学んだほうがいい。恥をかくぞ
333デフォルトの名無しさん
垢版 |
2022/12/12(月) 18:31:46.35ID:LkLBJ8+F
WPFのデザイン機能とかコントロールの配置ぐらいしかないから
CSSデザインとか全く想像すら出来ないんじゃないの?

WPFレベルでCSSにあたると大概がこの人(>>318)のように玉砕するから
334.NET MAUI HighSchool
垢版 |
2022/12/12(月) 20:17:28.18ID:I9CBk1cW
>>333
いややったってば
すぐバグるしゴミだった
2022/12/12(月) 20:49:57.65ID:IxHqEtzn
バグってるのはブラウザじゃなくてあなたの書いたHTMLとCSSでしょ
仕様が複雑怪奇で正しく使うのが難しいのは同意するけど、現に正しく使えるエンジニアは世の中にいくらでも存在しており、よ良い代替が存在しない以上、
それをゴミだの何だのと喚いても結局あなたのスキル不足でしかないのよ
336.NET MAUI HighSchool
垢版 |
2022/12/12(月) 20:51:10.86ID:I9CBk1cW
>>335
いやオレの中でゴミだったから今後使わないだろうねってことだよ
2022/12/12(月) 20:51:17.56ID:Av/AuTTr
バグるのはブラウザの性です!で通せばいい
338.NET MAUI HighSchool
垢版 |
2022/12/12(月) 20:56:37.36ID:I9CBk1cW
>>337
いやブラウザのせいでは無いけど仕様的に頭おかしい言語だと思うわ
一回style=""でhtmlに記述したらそのスタイル削除しても後ろのCSSに一生渡せない
styleで上書きするしかなくなる
2022/12/12(月) 21:01:32.45ID:wiWaIgjz
お前ここでもバグとか言ってんのか
自分が無能なだけだろ
340デフォルトの名無しさん
垢版 |
2022/12/12(月) 21:31:30.02ID:H8Pyj0AO
>>338
えらい低見を越えられてない事は判った
2022/12/12(月) 22:34:54.54ID:7pScB9/8
CSS で書くのは無理。
仕様が膨大だろ

Bootstrap でも、SASS で書く

他の部分に、影響を及ぼしてはならない。
各パーツは、疎結合で作るべき
342.NET MAUI HighSchool
垢版 |
2022/12/12(月) 22:56:15.90ID:I9CBk1cW
膨大なくせに体系的に纏められてないんだよな
343デフォルトの名無しさん
垢版 |
2022/12/12(月) 23:04:51.21ID:H8Pyj0AO
>>341
Scoped CSS
2022/12/13(火) 20:42:43.55ID:krvBGeJn
UserControlクラスってなんか特殊なの?
UserControlを継承したクラスのコレクションをListBoxのItemSourceに設定したんだけど、全然バインドしてくれない
UserControlの継承をやめてただのクラスにするとバインドされるようになる
345デフォルトの名無しさん
垢版 |
2022/12/14(水) 01:25:17.43ID:22KidZsA
XamlにUserControl書いておいてそこに他のコントロールをコード側で代入するような使い方はしたことあるな
2022/12/14(水) 02:01:01.05ID:oM3zst/N
なんか困った記憶があるな
なんかバインドのタイミングが遅かったかViewModelの構造だったか
347デフォルトの名無しさん
垢版 |
2022/12/14(水) 06:34:22.03ID:7m/OWdKG
WINFORMのpanelコントロールはWPFあるの?
348デフォルトの名無しさん
垢版 |
2022/12/14(水) 12:03:59.99ID:s1eOj5IL
>>347
用途によって細分化されてる
コントロールを並べたいならWrapPanelやDockPanelなど
スクロールバーを使いたいならScrollViewer
349デフォルトの名無しさん
垢版 |
2022/12/14(水) 20:03:29.32ID:lgfHKaNI
Win11だと、OneDriveの設定画面がWinUI化してた。超見やすい!
ただWinUI 三なのかはわからず...
350デフォルトの名無しさん
垢版 |
2022/12/14(水) 21:00:14.50ID:XhtdH9iq
MAUIはゴミだと良く判る展開ω
351.NET MAUI HighSchool
垢版 |
2022/12/14(水) 22:33:40.69ID:IUJ3tLdU
>>350
どこが?
普通に使えるけど?
352.NET MAUI HighSchool
垢版 |
2022/12/14(水) 22:35:12.86ID:IUJ3tLdU
>>349
いいね
こっちもWinUI3なのかわからんけどOfficeの最新版はWinUI3っぽい
2022/12/14(水) 22:52:25.60ID:SeJwPry4
そもそもマルチプラットフォームって需要あるの?
354.NET MAUI HighSchool
垢版 |
2022/12/14(水) 23:01:08.16ID:IUJ3tLdU
>>353
あるだろそりゃ
2022/12/15(木) 20:00:02.02ID:4+o9r+AK
簡単なマルチアプリならFlutter辺りでササっと作って、
それなりのアプリならネイティブ環境でそれぞれ作った方が楽だと思う
356デフォルトの名無しさん
垢版 |
2022/12/15(木) 20:34:55.93ID:tmBA8a+G
Windows 10の電卓が新しいUIになっていた
357.NET MAUI HighSchool
垢版 |
2022/12/15(木) 21:17:01.89ID:2R9Yeg7n
>>355
いや普通にMAUIのほうが楽だろ
Blazor Web ViewでHTML,CSS使えるようになったし
https://youtu.be/2dllz4NZC0I
このアプリなんか3ヶ月だとさ
https://dev.to/fx/ditching-net-and-finding-faith-again-after-10-years-4d7b
358.NET MAUI HighSchool
垢版 |
2022/12/15(木) 21:18:40.15ID:2R9Yeg7n
Flutterってそんな簡単にアプリ作れるイメージないんだが
Dartで全部UI書くんだぜ?
馬鹿だろ
しかもMVUだから普通のプログラミングとは一癖も二癖も違う
変数は一回全部Stateに入れる必要あり
359.NET MAUI HighSchool
垢版 |
2022/12/15(木) 21:19:22.89ID:2R9Yeg7n
まさかC#とXAMLでGUIアプリ作ってるやつがFlutterなんか勧めるとはね
360.NET MAUI HighSchool
垢版 |
2022/12/15(木) 21:20:59.13ID:2R9Yeg7n
とりあえず俺の作ったアドベントカレンダー見れば別にMAUIでもいいやってなるよ
特にC#普段使ってるのであれば
https://qiita.com/advent-calendar/2022/dotnetmaui
2022/12/15(木) 21:22:35.62ID:+bb6kkB4
なんか大変なんだな。
android studioでやってるけどiOS版はあきらめろんだな。
362.NET MAUI HighSchool
垢版 |
2022/12/15(木) 21:24:43.25ID:2R9Yeg7n
>>361
AndroidStudioとVisualStudioどっちが使いやすいとかある?
VisualStudioしか使ったことないわ
2022/12/15(木) 21:25:28.65ID:fvxr8nGQ
デスクトップアプリ何で作る?
最低要件(最低限これくらいは満たしてね)チェックシート2022
============================================================================

チェック用アプリ仕様:
 アプリ上の"はろー"ボタンをマウスでクリックしたらメッセージボックスで"わーるど"を表示する

(1)配布要件1:動作させるのに必要なファイル一式を任意の場所に配置して動作する
(2)配布要件2:管理者権限不要で配置できる
(3)配布要件3:動作させるのに必要なファイル数が10以内 ※1

(4)起動要件1:エントリファイルをダブルクリックして起動可
(5)起動要件2:エントリファイルをPowerShellから起動可
(6)起動要件3:管理者権限不要で起動可
(7)起動要件4:ネットワーク切断状態(スタンドアロン)で動作する

(8)メモリ要件:
 A:起動時の消費メモリが20MiB以内
 B:起動時の消費メモリが40MiB以内

(9)ストレージ要件:
 A:動作させるのに必要なファイルサイズ合計が200KiB以内 ※1
 B:動作させるのに必要なファイルサイズ合計が1MiB以内 ※1

※1. OSにプリインストールされているランタイムは除く

============================================================================
(1)~(7)はYesの場合+10, Noの場合は-100
(8)~(9)はAの場合+10, Bの場合+5, その他は-100

合計点80以上が合格ライン(当然点数は高ければ高いほど優秀)
364.NET MAUI HighSchool
垢版 |
2022/12/15(木) 21:27:02.28ID:2R9Yeg7n
モバイルSuicaとかXamarinだからC#だぞ?
ReactiveUI使ってた
2022/12/15(木) 21:35:14.51ID:+bb6kkB4
>>362
android studio の方が使いやすいな。
変数名とかのリファクタは便利過ぎる。
UIなxmlも書き換えてくれる。
Windows アプリはVisual Studio でc#のwinformsだけどね。
2019の方が良かったな2022はちょっとうっとおしい、設定調べなきゃ。
366.NET MAUI HighSchool
垢版 |
2022/12/15(木) 21:39:52.50ID:2R9Yeg7n
>>365
そうなんだ…
2022/12/15(木) 22:28:59.48ID:uzUQknvL
>>358
めちゃくちゃ楽だよ。
UI書くのに便利なように言語仕様変えたレベルだからあれ。
368.NET MAUI HighSchool
垢版 |
2022/12/15(木) 22:32:02.22ID:2R9Yeg7n
>>367
どこが楽なんだよ
369.NET MAUI HighSchool
垢版 |
2022/12/15(木) 22:33:44.51ID:2R9Yeg7n
どっちもやったことないのまるわかりなんだがw
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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