X



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

■ このスレッドは過去ログ倉庫に格納されています
2019/05/16(木) 07:52:32.39ID:8fOYIMEO
Windows Presentation Frameworkについて語るスレ。

前スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part22
https://mevius.5ch.net/test/read.cgi/tech/1513175747/

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

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
2019/05/21(火) 07:43:54.26ID:J5RbKPKD
>>68
そう思う?移植完了の後はロードマップ真っ白なのに?
ちなみにdotnet/wpfは4人くらいで作業していて、必要最小限の単純な移植を超える仕事は厳しく禁じられているようだ
2019/05/21(火) 08:07:51.81ID:jKYjm96N
>>65
core対応でアクティブだと言えるならWPFだけじゃなくwin formsも
アクティブと言うことになるけど…

アクティブじゃないよ
もう開発してないよ
71デフォルトの名無しさん
垢版 |
2019/05/21(火) 09:04:23.15ID:TRpqXUmi
一度捨てたと思ったデスクトップの必要性が再認識されてきている。
これから夏にかけxaml islandの話題がMSより増えて行くだろうから
まずはそちらを気にした方が良い。デスクトップもUWPだけで行きま
しょうというMSの方向性が大きく変化したことは確かだから。
UWPのコントロールもそれぞれが共有できる方向に変化してきたので。
ただし、FORMに関してのxaml ilandはどうやるの?という疑問はある。
とはいえ、WPFが新たに拡張されてという話とはちょい異なる。
この数か月のマイクロソフトの発表をみましょ。
2019/05/21(火) 09:15:29.44ID:1xdRixLR
>>69
もしかしてひとつのフレームワークに4人ってのが少ないとでも思ってる?
73デフォルトの名無しさん
垢版 |
2019/05/21(火) 12:54:23.99ID:JEq70M1l
MSレベルで4人雇ったら、年5000万位かかるか
2019/05/21(火) 13:27:03.74ID:J5RbKPKD
フルタイムで作業してるのは一人だけっぽいね
2019/05/21(火) 16:39:45.49ID:1xdRixLR
>>74
C#だってフルタイムは一人だけやでw
2019/05/21(火) 19:25:13.12ID:GLuE/7pA
あれだけ押してるBlazorもフルタイムは1人だもんね
2019/05/21(火) 19:31:06.98ID:00e1l8X+
WPFが好きすぎて頭が逝っちゃってる人の集まり?
2019/05/21(火) 19:52:22.69ID:L8K016dB
嫌いなのに張り付いてる方が頭が逝ってるだろ
2019/05/21(火) 19:54:10.43ID:n+3BxqXh
ID:00e1l8X+はマ板で呟いてくれんかね
2019/05/21(火) 20:12:32.33ID:kdkwqODu
>>73
MSレベルっつーか人月単価100万ってそんなに優秀じゃないぞ
2019/05/21(火) 23:36:21.83ID:lCMEKqdP
この中でvb.net派の人いるかな....
新しいプロジェクト作成するたびににC#に移行しようと思っても、やっぱりVB選んでしまう...
おかげでC#のサンプルでも即座にVBに変換できるようになったわ
2019/05/22(水) 04:03:18.31ID:CgjVdHTS
これだから、アラフィフのおじいちゃんは...
2019/05/22(水) 07:50:35.59ID:5R6mSu1H
ぶいびーww
2019/05/24(金) 23:18:25.57ID:a/+LqS67
別にVB.NETでもかまわんと思うけどね
C#を推奨したい日本マイクロソフトのバイアスがずっと続いてるけど、ちゃんと他人にも分かる様なコード書けば問題無い
まあ、それがVBプログラマーの悪い所だが
2019/05/25(土) 00:17:27.23ID:9Yazqsa/
VB.NETでラムダを多用するようなソースコードを書くと見づらくてたまらないんだよな

まあ一人で書いてるソースであれば好きにすればいいんじゃないとも思うけど
引き継ぎや担当者アサインのことを考えるとちょっとなあ
若手・未経験者に今更VB.NETを覚えさせるのも後ろめたいというか倫理的に問題があるし
かといって「VB.NET出来ます」っていう人のスキルって大抵VisualStudio2005〜2008あたりで止まってる人が多いし
新しめの(VS2015/2017あたりの)文法を使うならそれこそC#で書くほうがスマートだし
2019/05/25(土) 00:26:30.22ID:1AJ3YN9O
俺は基本的にはVB派だが、ラムダ式だけは何とかならんかったのかと思うわ

あとヌル合体演算子はよ
2019/05/25(土) 04:17:14.56ID:vfi1mbHq
今あえてC#よりVBを選ぶ理由を知りたい
88デフォルトの名無しさん
垢版 |
2019/05/25(土) 04:17:54.71ID:WHAQulv7
マイクロソフトが好んでやりたいというより、VBで行きたいという声がスゲー多いためにそうせざるを得ないということだろな。これが人間社会ちゅうものなんだろう。
2019/05/25(土) 04:42:40.16ID:P9kv6fd4
リストボックスに画像表示するにはなんの関数を使うのか教えてください
ヒントだけでいいです

String[] img = System.IO.Directory.GetFileSystemEntries(
@" C: \Users\ワイ\Desktop"
);
//Directory.GetFileSystemEntries Method
for (int i = 0;i< files.Length;i++) {
listbox_right.Items.Add(img[i]);
これだとテキスト表示になります
そもそもlistboxはテキストのみなんですかね。
2019/05/25(土) 05:02:01.28ID:lXRt6Qhw
>>89
WPFの場合はコードはそれでいい。
XAML側でListBoxのItemTemplateを定義し、ImageのSourceプロパティに{Binding}でバインドする。
何を言っているのかまるで意味がわからないと思うが、それがWPFなんだよね。
https://docs.microsoft.com/ja-jp/dotnet/framework/wpf/data/data-templating-overview?view=netframework-4.8
まずはこの辺りのドキュメントを完全に理解できるようにならないと話にならない。
はっきり言って、今更こんな複雑怪奇な終わったフレームワークを無理に覚える価値はない。時間を無駄にする前にWPFは止めなさい。
2019/05/25(土) 05:12:14.62ID:P9kv6fd4
じゃあ代わりに何をすればいいのですか?electronはメモリ食うという噂が
vs codeは実際そうです
2019/05/25(土) 05:55:05.76ID:EXrLD8QH
>>91
Windowsのデスクトップアプリは迷走しまくっている
UWPも先行きが怪しくなってきて、もはやMS自身も今後どれを推奨するか明確に決まっていないという無茶苦茶な状況だ
・スキルの汎用性を重視する : いっそWebへ乗り換えるか、ElectronでWebベースの技術で作る
・学習コストを最小化する : WinForms
なるべく時間を無駄にしないためには今ならこのどちらかだろうな
2019/05/25(土) 07:33:36.50ID:P9kv6fd4
electronですか、rpgエディタみたいなの作れますか・
2019/05/25(土) 07:53:36.86ID:H3aX7Y36
>>92
横からですが、参考になりました。
いろいろググってて数年前の情報で、「新規開発で WPF を選択しない理由はない」みたいなことが書いてあって、
調べ始めたところでした。
ざっと読んだ感じ、昔の MFC や OWL の Doc / View みたいな感じ?
2019/05/25(土) 08:16:31.16ID:iifAFaPR
>>93
そりゃ作れるけど、ゲームならUnity使ったほうがいいんじゃないか?
ゲーム用の開発スイートだからゲーム本体はもちろんだが、簡単なGUIアプリも十分に作れる
あと個人的にアドバイスさせてもらうと、ゲームはまずゲーム本体から作った方がいい
俺も初心者の頃に同じことをやろうとしたことがあるから分かるが、ツールから作ろうとすると結局後で無駄になる
エディタなんてexcelで十分
2019/05/25(土) 09:04:48.17ID:P9kv6fd4
勉強も兼ねてるので1から作ろうとしています
2d専用のウルフエディタみたいなものを目指してますね

electronだと重いみたいなことが言われますが、2dなら問題ないと思います
2019/05/25(土) 15:17:08.94ID:P9kv6fd4
バインディングの超簡単なサンプルってないですか?
テキストボックスに文字をバインドするという仕組みなんですが。
<TextBox Name="textbox_center" Text="{Binding x}"/>
プログラム側でのx変数への文字の指定方法が見つかりませンでした

また、そもそもバインドとは、タグのプロパティに変数を指定する仕組みということでしょうか?

また、set ; getみたいなやつの意味がわからないです
超簡単なサンプルのページ教えてください
2019/05/25(土) 15:27:32.07ID:px4+wQIP
>>97
> set ; getみたいなやつ
自動実装プロパティのことかな
99デフォルトの名無しさん
垢版 |
2019/05/25(土) 15:28:35.22ID:WHAQulv7
WPF binding
で検索するといっぱい出てくるよ
2019/05/25(土) 17:08:11.22ID:6cjkDEDO
>>97
set;get;はここ
https://ufcpp.net/study/csharp/oo_property.html

てかそれの意味がわからないならWPFより先にC#の勉強しろや
2019/05/25(土) 17:09:54.90ID:P9kv6fd4
バインディングが効かなかったのはTextBoxコントロールを使っていたからですね
TextBlockにしたら効いたのですが、なぜでしょうか?
どちらも単なるテキストの表示です
2019/05/25(土) 17:17:51.87ID:MUGP4AlX
Electron は、Chromium(ブラウザ) + Node.js(サーバー)だから、300MB もある!

ツクールなども、Node.js か、Ruby on Rails じゃないの?
2019/05/25(土) 17:51:36.28ID:UKk+E4BI
そもそもデスクトップアプリ作るのにWPFがいまいちだからElectronって、後退してるよな。
2019/05/25(土) 18:34:01.11ID:P9kv6fd4
すみません
wpfがんばります
105デフォルトの名無しさん
垢版 |
2019/05/25(土) 18:58:35.19ID:QpbNX3PX
C#経験が評価されて今度ASP.NETの案件に参画するかもしれん
同じC#だが、覚えるのキツイな
だがついにデスクトップアプリマンの俺がデスクトップアプリから脱皮する時がきたわ
windowsサーバーだから個人開発では使えないし潰し効かないのが難点だがな・・・
2019/05/25(土) 19:30:48.30ID:6cjkDEDO
>>105
最近はASP.NET coreがあるから個人でもLinuxサーバで使えるのでは?
107デフォルトの名無しさん
垢版 |
2019/05/25(土) 19:43:52.34ID:QpbNX3PX
>>106
そうなんだ
まだASP.NET MVCの基本しか勉強してないから知らなかったよ
個人でLinuxサーバー構築してずっとパソコンつけっぱなしで扇風機でもつけて冷やしとけば良いのか?
しかしインフラの知識が少し弱いし、それだとPC一台専用で買って常に動かしとかないといけないよな?現実的じゃないわ
あとアーキテクチャがMVCの方とどの程度違うのかによるな
アーキテクチャが全然違ったらまたかなりの勉強が必要になるし
108デフォルトの名無しさん
垢版 |
2019/05/25(土) 19:53:56.15ID:QpbNX3PX
あ、違うか
linuxのレンタルサーバーに実行環境をデプロイして自分で環境構築しちゃえばいいのか
レンタルサーバーって最初からApacheとかは入ってるから自分で環境構築という発想がなかったわ
いけそうな気がするな、うん
2019/05/25(土) 20:24:09.29ID:Tic4GHY3
>>107-108
VMwareなりVirtualBoxとか使えばいいだけだろ
メモリー8GB程度あればCentOSの最小インストールなら普通に動くし
2019/05/25(土) 20:36:18.47ID:6cjkDEDO
>>109
常時起動ならレンタルサーバ借りたほうがいいよ
てかVMwareにLinux入れるくらいだったらBash on Ubuntu on Windowsでええやろ
2019/05/25(土) 20:43:31.92ID:NI3fO233
Bash on Ubuntu on Windowsはないわ〜
2019/05/25(土) 21:19:40.28ID:P9kv6fd4
バインドについて勉強してます
チュート試してみたのですが、うまく動かないので間違いの指摘をお願いします
https://ideone.com/Dgu2QJ

https://araramistudio.jimdo.com/2016/11/25/wpf%E3%81%AE%E3%83%90%E3%82%A4%E3%83%B3%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0-%E3%81%9D%E3%81%AE%EF%BC%91/

参考ページです



また、viewmodelの役割を大雑把に言うと何になるでしょうか?
仲介役ということで、上のコードでいえばclass1.csの部分かと思います。
viewとmodelだけで事足りるような気がするのですが。
2019/05/25(土) 21:22:05.45ID:UN9uDEfa
>>110
ケースバイケースだろ
個人開発でテストだけでレンタルサーバーまで借りなくてもいいだろうし小規模ならRaspberry Piとかでもいいし
2019/05/25(土) 21:26:25.93ID:+RRcuc5n
>>113
個人利用ならAzureやAWSの無料枠で十分
2019/05/26(日) 00:32:18.87ID:5z4iQyi0
>>112
それは実装途中の物みたいだから続きを読んでいけばいいんじゃないかな(無責任)
116デフォルトの名無しさん
垢版 |
2019/05/26(日) 08:21:06.40ID:7w4cgfO4
UWPの次の将来性のあるフレームワークができるまではWEBで食ってようかな
windowsアプリなんて金にならなさそうだし
2019/05/26(日) 13:55:20.05ID:C4yZNgS0
食ってようかな(笑)
118デフォルトの名無しさん
垢版 |
2019/05/26(日) 15:10:46.67ID:WAmAGMjw
>>116
どちらにしろ、受託じゃたかが知れてる
2019/05/26(日) 16:10:16.91ID:CXWnAd1n
食っててくれたまえ
2019/05/26(日) 19:50:11.76ID:KIe0CODm
hoge{get;set;}
これの意味がわからないのですが、超絶シンプルな例ってないんでしょうか?
例えばテキストボックスコントロールのTEXTにhogeという変数をバインドして、
hogeにプログラムないでhoge="文字";などと代入する

その歳の仲介というイメージなのですが、具体的にどういう動きをするんでしょうか
プログラム内で"文字"をgetして、バインドされたhogeにsetする?なんて意味ですか?
2019/05/26(日) 19:50:57.04ID:KIe0CODm
要は通常はxamlからhogeの値は参照出来ない
それを許可するための宣言がgetということですかね?
2019/05/26(日) 19:53:46.88ID:gL51xVlR
ただのプロパティやろ
2019/05/26(日) 19:54:23.45ID:K5jCBK8C
>>120
全然違う
ここ読め
https://ufcpp.net/study/csharp/oo_property.html
2019/05/26(日) 20:00:05.12ID:CXWnAd1n
このレベルからWPFとか素人にハーフマラソン走らせるレベル
125デフォルトの名無しさん
垢版 |
2019/05/26(日) 20:15:28.64ID:7w4cgfO4
>>120
君にはプログラミングは無理
肉体労働するといい
2019/05/26(日) 20:23:59.98ID:S2MuqUmA
ID:P9kv6fd4の馬鹿か
2019/05/26(日) 20:34:08.79ID:bvJijhhT
基礎からやろう?って何週間も前からいろんな人から散々言われているのにそういうアドバイスは一切無視して延々と質問続けるだけだからね
ツールは当然一生完成しないし技術は大してつかないで終わるよ
2019/05/26(日) 22:17:35.93ID:lD8uie1v
>>120
wpfはviewとviewmodelをdatacontextを介してやりとりするんや
例えばmainviewのdatacontextにmainviewmodelクラスを指定した場合、
mainviewmodelクラスのプロパティの値をバインディングすることでviewに表示することができる

c#でもJavaでもプロパティは外部への情報公開を目的としてるから
その意図をそのまま利用しとるだけ

大分ざっくりした説明だけれど、もし全く理解できないのなら前でも誰か言ってたけど、
windows formにするかコードビハインドに書くやり方でまずはやったほうがいい
JavaScriptにもMVVMの概念はあるからそっちから攻めるのもありかもしれない
2019/05/26(日) 22:20:05.47ID:lD8uie1v
ごめん、Javaのプロパティのとこは無視してくれ
2019/05/27(月) 07:42:24.34ID:35m6EZY7
>>120
内部変数を省略してるだけなんよ
private の内部変数がコンパイル時に勝手に作られる
2019/05/27(月) 11:51:22.51ID:JRCNDAml
>>120
自動実装プロパティっていつ使うのって話ならWPFはほぼ関係ない
自動実装プロパティは.netの機能でWPFは.netの一部
というだけの話

これは基礎からやれって話なのか?だけど
今からならwindows formsは勉強しなくていいと言う人もいるし
実際しなくていいだろう
ただWPFの解説書に.netについての解説なんかないよね
1からやる場合こういう.netの知識が曖昧になっても不思議はないと思う
.netは追加機能も多いし巨大すぎる
2019/05/27(月) 18:13:11.10ID:g3rj1HTz
> 今からならwindows formsは勉強しなくていいと言う人もいるし
> 実際しなくていいだろう

何を馬鹿なことを言ってるんだw
最近の初心者向け本では逆にwinformsしか説明してない
WPFなんて眼中にない
2019/05/27(月) 18:24:54.78ID:Y0xP1Rix
>>132
素人向けだからだろ?
wpfはMVVMとかxamlがくっついてくるから、winformの方が初心者向けなのは当たり前だ
2019/05/27(月) 19:33:58.77ID:re6ifzAE
で、ユニバーサルプラットフォームって
何と何と何があるのかな?
2019/05/27(月) 21:13:35.13ID:rm61aUh5
UWPとWPFの区別がつかない人がドヤ顔でマウンティング
2019/05/27(月) 21:27:11.21ID:llXnDosY
最近増えてきたガラスのような表現のフレームワークはWPFですか?
2019/05/27(月) 21:30:57.15ID:LNS8v7+t
いいえ
あれはUWPです
138デフォルトの名無しさん
垢版 |
2019/05/28(火) 19:02:40.16ID:ZZsS+Znm
xaml islandが出てきて、UWPじゃないとできないという制約が
なくなってきたね。
2019/05/28(火) 19:15:12.49ID:az36SE/9
そんなのあんだ。
2019/05/28(火) 19:38:30.31ID:MzojxIZT
逆に今後の新規開発や追加開発ではWPFもういらないってことなんだけどな
既存のWPF部分に手を入れざるを得ない場合を除き、常にWindows Runtimeで作る
それが今後のWPFアプリケーションの唯一の正しい作り方だ
2019/05/28(火) 20:56:00.72ID:5uVnslUx
>>140
ジョジョでいう
シルバーチャリオッツレクイエムみたいなもんか
2019/05/29(水) 01:24:16.83ID:l3SpZv82
>>141
さっぱりわからん
2019/05/29(水) 09:50:06.92ID:v46ep+GI
>>141
スタープラチナのザワールドだろ

通常はスタープラチナの精密で力強い攻撃で対応して無理なら時を止める
2019/05/29(水) 12:19:09.94ID:1hOUMMYr
Double型をバインディングしたTextboxに小数点を入力するとエラーになり問題、Extended Wpf toolkitのDoubleUpDownをTextboxの代わりに使ったらあっさり解決...
今までわざわざstring型でバインディングして数値だけ入力制限したりあれこれしてたのが無駄だったわ
2019/06/01(土) 16:43:20.75ID:228VL8j4
Windows API Code Packというのは機能を拡張するものですか?
c#で使用できるんでしょうか?
2019/06/01(土) 17:32:12.45ID:Ai3idouJ
できるよん
2019/06/01(土) 19:39:51.72ID:228VL8j4
はい
2019/06/02(日) 09:43:53.79ID:OPrZ2CcO
Directory.GetFileSystemEntriesで画像を取得できますか?
2019/06/02(日) 10:15:11.60ID:H0pYHCN3
ID:P9kv6fd4の馬鹿か
2019/06/02(日) 10:25:53.31ID:OPrZ2CcO
なんでそんなに攻撃的なんですか?
2019/06/02(日) 10:36:47.06ID:VOFsXmY2
>>150
関数の仕様をリファレンスで調べてきて引数と戻り値と動作を読んで、それでも分からないことがあったらそこを具体的に質問すると丁寧に答えてもらえるぞ
2019/06/02(日) 10:59:47.73ID:bzcjxT5l
wpf関係ないじゃん
何がC#でなにがwpfかもわかってないんでしょ
散々チュートリアルやろ?って忠告を無視して延々と同じような質問繰り返してりゃ答える側も馬鹿らしくなるよ
2019/06/02(日) 12:05:12.73ID:H0pYHCN3
>>150
しつこい馬鹿だから
いい加減死ねよ
2019/06/02(日) 21:42:55.58ID:1gGjmj25
画像ってのがサムネイルのことならWindows API Code Packで出来るんだが
もう少し自分で調べたほうが良いと思うよ
2019/06/02(日) 22:13:49.95ID:FzL8t6js
Windows API Code PackはForkがいくつもあってどれを使えばいいのか分からないな。
ライセンスも元のMSのページが消えてて良く分からんし。
2019/06/02(日) 23:35:24.11ID:1gGjmj25
ただ、ファイルシステムをCodePack使わずにWin32API使うと面倒になるからな
言うほど大変なわけでもないが、独特な管理方法で面食らったわ
2019/06/03(月) 00:00:34.97ID:/fVOuCWc
>>156
ファイルシステムってなんのこと?
フォルダー選択ダイアログとかを出すことかな
2019/06/03(月) 15:10:33.38ID:kNKAj5df
社内業務用にpowershell+.NETで簡易GUIを表示するようなアプリケーションを作る場合、商用ライセンスとか必要なんでしょうか?
2019/06/03(月) 16:58:31.60ID:L8VSMqPX
いらんでしょ
2019/06/03(月) 18:40:28.28ID:dutM1mQ+
どっちの意味だろう?
・(作成するアプリケーションの)商用ライセンス
・(VisualStudioの)商用ライセンス

よく主語が抜けてるとか言われてるけど
この場合、連体修飾語が抜けてるよね(今調べた)
2019/06/03(月) 18:46:53.35ID:oLmmsHsK
後者の意味にしか取れなかった、というか前者の意味がわからん
社内用に作ったアプリに商用ライセンスつけるか、って話?
2019/06/03(月) 18:50:14.74ID:Y6wyUKBm
社内配布でも基本的にはVSの開発者用ライセンス必要だし、
オープンソース使ってるならライセンス違反にならんように気をつけなあかん

自分個人だけで使うなら特にライセンス気にすることはないだろう
2019/06/03(月) 18:55:21.90ID:dutM1mQ+
うん
前者なら上長に聞けと思った

後者について VisualStudio Community のライセンスを調べたところ、
オープンソースプロジェクトや学習・研究目的ならどんな企業も問題ないが、
相談のケースはクローズドソースと思うので、以下の条件になるはず

・一般企業なら5ユーザーまで
・大企業(250台PCを所有、または売上100万ドル)なら、使用不可
2019/06/03(月) 19:23:31.03ID:iKNLzo07
VS Express2015なら無料で使用できますね
あとVS Codeを使うことも可能だが、WPFを開発って結構苦行かもしれんね
2019/06/03(月) 19:31:36.01ID:gHWgGxDB
メモ帳とかでソース書いてWindowsにプリインストールのcsc.exeでコンパイルした場合はVSのライセンスっていらないのかな?
スレチだけど
2019/06/03(月) 19:43:46.22ID:kNKAj5df
質問の仕方が悪かったですね
すみません

テキストエディタでpowershellのコードを書き、その中で.NETのFormオブジェクト達を呼び出してGUIを作ります
そのときに、powershellや.NETの商用ライセンス的なものが必要なのか知りたかったです

よろしくお願いします
2019/06/03(月) 19:52:03.41ID:dutM1mQ+
まさかの第三
・(実行環境の)商用ライセンス
だった
2019/06/03(月) 21:22:12.30ID:51hU7+bN
しかもWPFですらない可能性も出てきた
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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