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/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ですらない可能性も出てきた
2019/06/03(月) 22:12:25.81ID:D/nGT1NT
OSSなんだしいらないんじゃね?(適当)
社内用ならそんなシビアに調査しなくていいんじゃね?って気もするけど超大手とかだとやっぱしっかりしらべるのかね?
超大手なら周りなり法務なりに聞けで済むか
2019/06/03(月) 22:30:23.86ID:/fVOuCWc
>>163
小規模企業でも大企業からの委託案件だとNG
2019/06/04(火) 07:11:16.82ID:vCNf4oK2
>>170
「自社利用」な
2019/06/04(火) 11:36:40.38ID:K/ci/E6x
http://cointoss.hatenablog.com/entry/2017/02/21/121209
上を参考にexeにdllをマージしたのですが
Prism.dll、Prism.Unity.Wpf.dll、Prism.Wpf.dllは
exeのフォルダに置いていないと起動できません。
他のdllは削除しても起動できます。

なにか不足していることがあるのでしょうか?
173デフォルトの名無しさん
垢版 |
2019/06/06(木) 03:11:15.75ID:Q2PRQ2hH
>>166
不要
2019/06/12(水) 06:39:45.37ID:6mE/3wpu
WPF技術者探しても一人も見つからないあるよ。保守できないあるよ。
2019/06/12(水) 08:15:06.43ID:1sqooHn/
お前がメンテナになるんだよ
2019/06/12(水) 08:57:44.10ID:gBdzPl5F
金出しゃいくらでも居るよ
技術者を安いおちんぎんでこき使わないで
2019/06/12(水) 17:09:04.38ID:lPa5yFg1
技術者不足なのか足りてるのか分からん業界だ
2019/06/13(木) 20:13:48.97ID:Qp/i0hmX
core3いいじゃん
これで少し手直ししたらlinuxにwpfもっていけるってことなのかい
2019/06/13(木) 20:59:16.46ID:vbUZdfMk
残念ながらWPFやWinFormsは.NET CoreでありながらWin限定
WPFは大部分がC++/CLIで書かれているしWindows APIに依存しまくってるから、
まずはそれを全てポータブルな形に再実装しなければならない
百人月クラスの壮大なプロジェクトだ
2019/06/13(木) 21:15:12.81ID:sfQNEli4
100人月で済むならやりゃいいじゃん
壮大なプロジェクトって少なくとも1桁違うやろ
2019/06/13(木) 21:31:32.83ID:RglcOoNZ
>>180
一桁はおろか、二桁=1万人月くらいは必要じゃないかな…
2019/06/13(木) 21:32:10.18ID:09qLCJE0
MS社員の100人月ならドカタのサグラダファミリアだな
2019/06/13(木) 21:41:06.34ID:Br82W2pC
そもそもポータブルなGUIに無理がある
swingの様になりたいのか
2019/06/13(木) 22:01:08.10ID:k5DFsQwe
C++/CLIって久しぶりに聞きましたね
もう聞くことはないと思ってた
2019/06/13(木) 23:20:07.43ID:sfQNEli4
そもそもWPFなんだからWindows限定でよくね?
2019/06/13(木) 23:25:38.96ID:CND6SLBs
WPFはフルスクラッチでUIを描画してるから、アーキテクチャ的にはむしろWin限定にするほうが不自然
2019/06/14(金) 21:47:31.30ID:nRSl3ZvU
>>179
そうなん…
Win専用ならCoreにしても…

C++/CLIはたまに使う
2019/06/15(土) 09:19:09.60ID:Ga3aXpPN
Chromium+AspNetCore+Blazor
次世代の.NET系デスクトップフレームワークはこうなる
2019/06/15(土) 09:27:21.19ID:6PSH/Imj
過剰なクライアントサイド志向に対する最近の揺り戻しのムードの中で、サーバーサイドBlazorだけならワンチャンあったかもね
Blazorを正式なプロダクトとして推していくと決めた時点で、クライアントBlazorは廃止してサーバーサイド一本にするべきだった
Blazorといえばwasmのオモチャというイメージを払拭できない限り普及はない
2019/06/15(土) 09:42:50.74ID:Ga3aXpPN
SSRはもとはクライアントでしか動かないjsが鯖で動くすごいって技術
だからjs以外の言語だとSSRはなにも真新しさはない古典的な技術だ
なのでBlazorでサーバーサイドをやる意味はない(api、MVC、Pagesで十分)
クライアントで.NETを動かすことに意味がある
2019/06/15(土) 09:49:12.97ID:p9QrGiGS
Blectron的なやつのことを言いたい?
2019/06/15(土) 10:13:25.41ID:Ga3aXpPN
>>191
Blectronは知らないがElectronの.NET版という意味ならまさにそうだな
ググったらもうすでに同じ発想で取り組んでるOSSユーザーが少なからず居たから
もう暫くしたらBlazorでクロスプラットフォームデスクトップアプリが実用化するんじゃないかな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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