X



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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
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/
0069デフォルトの名無しさん
垢版 |
2019/05/21(火) 07:43:54.26ID:J5RbKPKD
>>68
そう思う?移植完了の後はロードマップ真っ白なのに?
ちなみにdotnet/wpfは4人くらいで作業していて、必要最小限の単純な移植を超える仕事は厳しく禁じられているようだ
0070デフォルトの名無しさん
垢版 |
2019/05/21(火) 08:07:51.81ID:jKYjm96N
>>65
core対応でアクティブだと言えるならWPFだけじゃなくwin formsも
アクティブと言うことになるけど…

アクティブじゃないよ
もう開発してないよ
0071デフォルトの名無しさん
垢版 |
2019/05/21(火) 09:04:23.15ID:TRpqXUmi
一度捨てたと思ったデスクトップの必要性が再認識されてきている。
これから夏にかけxaml islandの話題がMSより増えて行くだろうから
まずはそちらを気にした方が良い。デスクトップもUWPだけで行きま
しょうというMSの方向性が大きく変化したことは確かだから。
UWPのコントロールもそれぞれが共有できる方向に変化してきたので。
ただし、FORMに関してのxaml ilandはどうやるの?という疑問はある。
とはいえ、WPFが新たに拡張されてという話とはちょい異なる。
この数か月のマイクロソフトの発表をみましょ。
0073デフォルトの名無しさん
垢版 |
2019/05/21(火) 12:54:23.99ID:JEq70M1l
MSレベルで4人雇ったら、年5000万位かかるか
0081デフォルトの名無しさん
垢版 |
2019/05/21(火) 23:36:21.83ID:lCMEKqdP
この中でvb.net派の人いるかな....
新しいプロジェクト作成するたびににC#に移行しようと思っても、やっぱりVB選んでしまう...
おかげでC#のサンプルでも即座にVBに変換できるようになったわ
0084デフォルトの名無しさん
垢版 |
2019/05/24(金) 23:18:25.57ID:a/+LqS67
別にVB.NETでもかまわんと思うけどね
C#を推奨したい日本マイクロソフトのバイアスがずっと続いてるけど、ちゃんと他人にも分かる様なコード書けば問題無い
まあ、それがVBプログラマーの悪い所だが
0085デフォルトの名無しさん
垢版 |
2019/05/25(土) 00:17:27.23ID:9Yazqsa/
VB.NETでラムダを多用するようなソースコードを書くと見づらくてたまらないんだよな

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

あとヌル合体演算子はよ
0088デフォルトの名無しさん
垢版 |
2019/05/25(土) 04:17:54.71ID:WHAQulv7
マイクロソフトが好んでやりたいというより、VBで行きたいという声がスゲー多いためにそうせざるを得ないということだろな。これが人間社会ちゅうものなんだろう。
0089デフォルトの名無しさん
垢版 |
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はテキストのみなんですかね。
0090デフォルトの名無しさん
垢版 |
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は止めなさい。
0091デフォルトの名無しさん
垢版 |
2019/05/25(土) 05:12:14.62ID:P9kv6fd4
じゃあ代わりに何をすればいいのですか?electronはメモリ食うという噂が
vs codeは実際そうです
0092デフォルトの名無しさん
垢版 |
2019/05/25(土) 05:55:05.76ID:EXrLD8QH
>>91
Windowsのデスクトップアプリは迷走しまくっている
UWPも先行きが怪しくなってきて、もはやMS自身も今後どれを推奨するか明確に決まっていないという無茶苦茶な状況だ
・スキルの汎用性を重視する : いっそWebへ乗り換えるか、ElectronでWebベースの技術で作る
・学習コストを最小化する : WinForms
なるべく時間を無駄にしないためには今ならこのどちらかだろうな
0094デフォルトの名無しさん
垢版 |
2019/05/25(土) 07:53:36.86ID:H3aX7Y36
>>92
横からですが、参考になりました。
いろいろググってて数年前の情報で、「新規開発で WPF を選択しない理由はない」みたいなことが書いてあって、
調べ始めたところでした。
ざっと読んだ感じ、昔の MFC や OWL の Doc / View みたいな感じ?
0095デフォルトの名無しさん
垢版 |
2019/05/25(土) 08:16:31.16ID:iifAFaPR
>>93
そりゃ作れるけど、ゲームならUnity使ったほうがいいんじゃないか?
ゲーム用の開発スイートだからゲーム本体はもちろんだが、簡単なGUIアプリも十分に作れる
あと個人的にアドバイスさせてもらうと、ゲームはまずゲーム本体から作った方がいい
俺も初心者の頃に同じことをやろうとしたことがあるから分かるが、ツールから作ろうとすると結局後で無駄になる
エディタなんてexcelで十分
0096デフォルトの名無しさん
垢版 |
2019/05/25(土) 09:04:48.17ID:P9kv6fd4
勉強も兼ねてるので1から作ろうとしています
2d専用のウルフエディタみたいなものを目指してますね

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

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

また、set ; getみたいなやつの意味がわからないです
超簡単なサンプルのページ教えてください
0099デフォルトの名無しさん
垢版 |
2019/05/25(土) 15:28:35.22ID:WHAQulv7
WPF binding
で検索するといっぱい出てくるよ
0101デフォルトの名無しさん
垢版 |
2019/05/25(土) 17:09:54.90ID:P9kv6fd4
バインディングが効かなかったのはTextBoxコントロールを使っていたからですね
TextBlockにしたら効いたのですが、なぜでしょうか?
どちらも単なるテキストの表示です
0102デフォルトの名無しさん
垢版 |
2019/05/25(土) 17:17:51.87ID:MUGP4AlX
Electron は、Chromium(ブラウザ) + Node.js(サーバー)だから、300MB もある!

ツクールなども、Node.js か、Ruby on Rails じゃないの?
0103デフォルトの名無しさん
垢版 |
2019/05/25(土) 17:51:36.28ID:UKk+E4BI
そもそもデスクトップアプリ作るのにWPFがいまいちだからElectronって、後退してるよな。
0105デフォルトの名無しさん
垢版 |
2019/05/25(土) 18:58:35.19ID:QpbNX3PX
C#経験が評価されて今度ASP.NETの案件に参画するかもしれん
同じC#だが、覚えるのキツイな
だがついにデスクトップアプリマンの俺がデスクトップアプリから脱皮する時がきたわ
windowsサーバーだから個人開発では使えないし潰し効かないのが難点だがな・・・
0107デフォルトの名無しさん
垢版 |
2019/05/25(土) 19:43:52.34ID:QpbNX3PX
>>106
そうなんだ
まだASP.NET MVCの基本しか勉強してないから知らなかったよ
個人でLinuxサーバー構築してずっとパソコンつけっぱなしで扇風機でもつけて冷やしとけば良いのか?
しかしインフラの知識が少し弱いし、それだとPC一台専用で買って常に動かしとかないといけないよな?現実的じゃないわ
あとアーキテクチャがMVCの方とどの程度違うのかによるな
アーキテクチャが全然違ったらまたかなりの勉強が必要になるし
0108デフォルトの名無しさん
垢版 |
2019/05/25(土) 19:53:56.15ID:QpbNX3PX
あ、違うか
linuxのレンタルサーバーに実行環境をデプロイして自分で環境構築しちゃえばいいのか
レンタルサーバーって最初からApacheとかは入ってるから自分で環境構築という発想がなかったわ
いけそうな気がするな、うん
0109デフォルトの名無しさん
垢版 |
2019/05/25(土) 20:24:09.29ID:Tic4GHY3
>>107-108
VMwareなりVirtualBoxとか使えばいいだけだろ
メモリー8GB程度あればCentOSの最小インストールなら普通に動くし
0110デフォルトの名無しさん
垢版 |
2019/05/25(土) 20:36:18.47ID:6cjkDEDO
>>109
常時起動ならレンタルサーバ借りたほうがいいよ
てかVMwareにLinux入れるくらいだったらBash on Ubuntu on Windowsでええやろ
0112デフォルトの名無しさん
垢版 |
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だけで事足りるような気がするのですが。
0113デフォルトの名無しさん
垢版 |
2019/05/25(土) 21:22:05.45ID:UN9uDEfa
>>110
ケースバイケースだろ
個人開発でテストだけでレンタルサーバーまで借りなくてもいいだろうし小規模ならRaspberry Piとかでもいいし
0116デフォルトの名無しさん
垢版 |
2019/05/26(日) 08:21:06.40ID:7w4cgfO4
UWPの次の将来性のあるフレームワークができるまではWEBで食ってようかな
windowsアプリなんて金にならなさそうだし
0118デフォルトの名無しさん
垢版 |
2019/05/26(日) 15:10:46.67ID:WAmAGMjw
>>116
どちらにしろ、受託じゃたかが知れてる
0120デフォルトの名無しさん
垢版 |
2019/05/26(日) 19:50:11.76ID:KIe0CODm
hoge{get;set;}
これの意味がわからないのですが、超絶シンプルな例ってないんでしょうか?
例えばテキストボックスコントロールのTEXTにhogeという変数をバインドして、
hogeにプログラムないでhoge="文字";などと代入する

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

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

大分ざっくりした説明だけれど、もし全く理解できないのなら前でも誰か言ってたけど、
windows formにするかコードビハインドに書くやり方でまずはやったほうがいい
JavaScriptにもMVVMの概念はあるからそっちから攻めるのもありかもしれない
0131デフォルトの名無しさん
垢版 |
2019/05/27(月) 11:51:22.51ID:JRCNDAml
>>120
自動実装プロパティっていつ使うのって話ならWPFはほぼ関係ない
自動実装プロパティは.netの機能でWPFは.netの一部
というだけの話

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

何を馬鹿なことを言ってるんだw
最近の初心者向け本では逆にwinformsしか説明してない
WPFなんて眼中にない
0133デフォルトの名無しさん
垢版 |
2019/05/27(月) 18:24:54.78ID:Y0xP1Rix
>>132
素人向けだからだろ?
wpfはMVVMとかxamlがくっついてくるから、winformの方が初心者向けなのは当たり前だ
0138デフォルトの名無しさん
垢版 |
2019/05/28(火) 19:02:40.16ID:ZZsS+Znm
xaml islandが出てきて、UWPじゃないとできないという制約が
なくなってきたね。
0140デフォルトの名無しさん
垢版 |
2019/05/28(火) 19:38:30.31ID:MzojxIZT
逆に今後の新規開発や追加開発ではWPFもういらないってことなんだけどな
既存のWPF部分に手を入れざるを得ない場合を除き、常にWindows Runtimeで作る
それが今後のWPFアプリケーションの唯一の正しい作り方だ
0143デフォルトの名無しさん
垢版 |
2019/05/29(水) 09:50:06.92ID:v46ep+GI
>>141
スタープラチナのザワールドだろ

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

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

自分個人だけで使うなら特にライセンス気にすることはないだろう
0163デフォルトの名無しさん
垢版 |
2019/06/03(月) 18:55:21.90ID:dutM1mQ+
うん
前者なら上長に聞けと思った

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

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

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

よろしくお願いします
■ このスレッドは過去ログ倉庫に格納されています

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