ふらっと C#,C♯,C#(初心者用) Part149

■ このスレッドは過去ログ倉庫に格納されています
2020/12/16(水) 11:29:35.35ID:TSvQ057dM
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part148
https://mevius.5ch.net/test/read.cgi/tech/1590578921/
■関連スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2021/02/11(木) 20:05:19.03ID:qDEqQMnn0
WinFormsに回帰せよ
見た目は最新のモダンなGUI部品、
中身はWinFormsってのも不可能じゃないでしよ、頑張れよMS
2021/02/11(木) 20:09:34.00ID:7n3rG35h0
もうQtでよくね?と思う
商用もOKっぽいし
2021/02/11(木) 20:13:58.80ID:k5l1P+DH0
QImageかQPixmapがMatサポートしたら
考える
2021/02/11(木) 20:22:34.99ID:zGBoORUF0
>>599
よりによってWPFリリースより前に開発されたソフトを持ち出す頭の悪さ
2021/02/11(木) 20:28:55.42ID:k5l1P+DH0
>>603
WPFは2006年。pintaは2010年。
4桁の比較も出来ない馬鹿は死ね
2021/02/11(木) 20:45:16.85ID:MZXX+vIJ0
>>600
賛成
2021/02/11(木) 20:48:28.14ID:zGBoORUF0
pintaはPaint.NETを参考にクロスプラットフォーム対応でGTKで開発したもの
元のPaint.NETの開発は2004年
2021/02/11(木) 23:20:50.41ID:89K1HM4Z0
ちょっと戻って整理してくれ。

WPFは従来型(コードビハインド)での実装も
根本レベルでサポートしてるのに、
なんでwinFormsに回帰したいん?
2021/02/11(木) 23:42:04.25ID:zlnnHWka0
>>596
自分で書かなきゃならないコード量ってそんなに違ったっけ?
このまえ「WinFormsぐらいの気軽」なソフトを WPF で作った時は自分で書いた量はそんなに違わなかったような。
2021/02/12(金) 00:29:54.50ID:STyCrufi0
Wpfは、Prism.Unity等のDIコンテナ使う前提で設計すると、コード量は却って少なくなるんじゃね?
DIそのものじゃないが、Event Aggregatorなんか凄く便利だ
610デフォルトの名無しさん (ワッチョイ 9354-cU8Z)
垢版 |
2021/02/12(金) 02:33:39.65ID:8skgNT+D0
非同期の勉強してるんですが、
1つの処理を非同期にしたら、それを呼び出すメソッドも、更にそのメソッドを呼び出すメソッドも非同期に・・・・
って感じになってしまうんですが、ピンポイントで非同期にして上手い設計にするコツを教えてください。
2021/02/12(金) 03:41:53.86ID:jLDSfmCza
>>610
煽る意図は全然ないつもりだけど、
そもそも非同期が何を意味してるのか理解しているように聞えないので
まずそれを理解するのが先だと思うよ。

設計とかその後の話でしょ。
2021/02/12(金) 04:13:40.25ID:BHIDBrst0
>>610
非同期の勉強を始めると一度はぶつかるよね
同期メソッドから非同期メソッドを呼び出せばいいだけでググれはすぐでてくると思う
2021/02/12(金) 04:24:05.42ID:BHIDBrst0
>>610
補足だけど設計という話になると、非同期メソッドを呼び出しているメソッドが非同期メソッドじゃない様な設計をいいとは思わない
614デフォルトの名無しさん (ワッチョイ 9ebb-9N8P)
垢版 |
2021/02/12(金) 04:35:12.34ID:0YHTI9ak0
でもこう間違ったのはよく理解できる
結構な数の入門書やブログに、こういった間違った記述があるんだよな
2021/02/12(金) 04:43:36.86ID:NIOdbtDV0
ありがとうございます。ググってみました。

非同期処理の結果を受け取るために、Result ばっかり使用していたのですが、デッドロックするという情報を見て脳死してました。

・戻り値が欲しい場合は呼び出し元の同期メソッドで、GetAwaiter(false).GetResult();
・非同期メソッド内で処理完結させたい場合は、GetAwaiter(false).OnCompleted();
・同期メソッド内で非同期処理を完結させたい場合は、Task.Run();
をすればとりあえず大丈夫そう?という感じみたいなので、これをベースに考えてみます。

今勉強で作ってるのが WinForms アプリですが、多くの処理の起点が戻り値 void のイベントハンドラで、
GetAwaiter(false) にすれば、空いてるスレッド使うことでデッドロックのリスクも下がる(なくなる?)みたいなので、試行錯誤してみます。
2021/02/12(金) 05:48:58.46ID:jWNhPSPe0
>>615
それはResult云々というより変な場所でawaitしてるとじゃないの?
Awaiterは直接扱う物じゃないしConfigureAwaitの間違いだと思うけど
基本的にはUIスレッドで待つ・結果を得るならTaskをawaitするだけ
ライブラリ作るとか、妙な組み方しなければ意識する必要はないはず

元スレッドを解放したい場所(多くの場合UIスレッド)でawaitを使う
非同期処理ならば結果を取り出して返すのではなくTaskを丸ごと返す
勿論それが絶対ではないが、大抵の場合はそれで済むんじゃないかな
あとはProgress<T>とかContinueWithとかTaskExtensions.Unwrapとか
2021/02/12(金) 09:14:15.17ID:Sw85Yz/U0
>>600
WinFormsは要素を大量生成するとバカ重くなるという現代GUIには向かない根本的欠陥がある
WinFormsもといWin32はコントロール一つ一つがCreateWindowで生成されるウインドウだからな

その点WPFはWindowクラス以外は基本「ただの絵」であるため大量生成してもそこまで重くならない
が、WPFは抽象化に抽象化を重ねまくったせいで初期の時点でかなり重いという元も子もない産物だが
2021/02/12(金) 09:30:08.77ID:1LnGwNFm0
WPFは無かった扱いにしてパフォーマンスも記述も洗練された奴を作り直してくんねえかな
悪くなかったとしても15年前のアーキテクチャだ
バージョン2が出てもいいだろう
619デフォルトの名無しさん (ワッチョイ a701-pCKf)
垢版 |
2021/02/12(金) 10:18:15.52ID:ecic4es+0
>>618
それが、こんどのMS流 MVU(Model-View-Update)ジャマイカ?
https://devblogs.microsoft.com/dotnet/introducing-net-multi-platform-app-ui/
https://forest.watch.impress.co.jp/docs/news/1254643.html
620デフォルトの名無しさん (エムゾネ FF32-olyV)
垢版 |
2021/02/12(金) 13:13:53.93ID:x9NfpsA7F
yield
2021/02/12(金) 19:15:40.43ID:3JpcuYvx0
イエーイ
2021/02/12(金) 19:53:50.62ID:Ah/zVhy20
遺詠
2021/02/13(土) 23:26:09.07ID:zYMuRkWP0
WPFはもうサポート終了にして終わりでいいのではw
XAMLがクソ過ぎるw
もっとマシなものを作ってほしいわ
2021/02/13(土) 23:33:59.55ID:x5WG3KQe0
新しいものが出たってどうせついてこれないんだからそのままForms使ってればいいんでない?
2021/02/13(土) 23:36:28.82ID:+40inVMc0
>>623
XAMLじゃなくてMVVMじゃねえの?
WPFはwinFormsの上位互換だが。
2021/02/13(土) 23:36:39.68ID:gxnJuOwS0
あからさまにメリットなかったやん
書籍も全くない有様
2021/02/14(日) 00:04:22.88ID:a94i0UVza
メリットがないは言い過ぎで、レイアウトやデザイン性の自由度は明らかにFormより圧倒的に高い。
反面GDI+の機能を完全に包含してない、みたいな問題点もあった。
2021/02/14(日) 00:31:12.63ID:wyKYn9A/0
こんど WPF + VMU で
少し状況かわるんじゃねーーの。
2021/02/14(日) 00:31:45.69ID:wyKYn9A/0
WPF + MVU
2021/02/14(日) 00:44:18.09ID:D24G58JB0
>>624
ホントそう思うしMSも下手にWinFormsと同じようにイベントハンドラー書けるようにするもんだから>>625みたいに上位互換とか勘違いする奴が出てくる
別物としてMVVM守んねーと書けないからちゃんと勉強しろ、できねー奴は切り捨てる!
ぐらいすればいいのに
2021/02/14(日) 00:49:41.65ID:HSnUb3X8p
で、MSが開発者から切り捨てられるわけですね
笛吹いても誰も踊らない
2021/02/14(日) 00:50:37.43ID:x2D1GnEN0
じゃあ、それができてるサンプルないの?ってゆーたら1個も出てこなかったじゃない?
2021/02/14(日) 00:51:52.68ID:wyKYn9A/0
基本線で上位互換です。
@ WPF + イベントハンドラー
A WPF + MVVM
B WPF + MVU
メジャーなもんでもこんなに...
2021/02/14(日) 00:52:35.39ID:x2D1GnEN0
この世のどこにもないものを何故か偉そうに語ってたってのが真相
2021/02/14(日) 00:55:34.53ID:KRyWJVgF0
XPSをどうしたいのか?とか
疑問は尽きないよな
2021/02/14(日) 01:01:03.63ID:Vd2M5/i80
WinFormsと同じコントロールを用意しているなら上位互換だけど
WPFはコントロールの数は減っているし、同じ名前ですらないし
ちょっとしたツール作るだけならWPFで作る理由が全然無いな

世に売るようなものでデザインとかスケーリングとか考慮するなら
WPFでもアリだろうけど、今はelectronとかで作ったほうがmacにも対応出来るし
WPFはもう過去のものという感じがするわ
2021/02/14(日) 01:16:47.00ID:F5r/6Yw/0
業務アプリだけど、WPF出始めから採用して、全然問題なくみんな移行できたよ。
2021/02/14(日) 01:32:57.20ID:a94i0UVza
前も書いたかもしれんけどデータ数が多い折れ線グラフなんか実装しようとすると
行き詰るんだよねWPFは。これでWPFが嫌いになった。

あと、これは勉強不足で勘違いしてるかもしれないけどGDI+みたいに印刷と画面を
透過的に扱えない。
2021/02/14(日) 01:45:32.23ID:wyKYn9A/0
MVVMで使ってるコントロールも
内部実装はMVVMしてませんしねwww
2021/02/14(日) 01:46:58.58ID:x2D1GnEN0
酷い裏切り行為だな
2021/02/14(日) 01:51:03.43ID:rF0WajFI0
コントロールをMVVMにする意味あるのか
642デフォルトの名無しさん (ワッチョイ a701-pCKf)
垢版 |
2021/02/14(日) 02:02:16.26ID:wyKYn9A/0
>>641
無いです。
外向きにMVVM対応させて内部実装は普通の実装です。
まあ最短高速な実装です。

昔クラスが1000以上あるでかいグラフコントロールを改修したときも、
内部はMVVMじゃなく普通の実装でしたし、
それ以外の関連コントール(とある会社のWFPコントールスイート製品)
もそんな感じでした。
2021/02/14(日) 08:37:53.56ID:ZrfffQoz0
chartコントロールが標準で用意されてないのが気に入らん
上位互換ならコントロールもwinform以上用意しとけよ
2021/02/14(日) 09:03:10.41ID:D24G58JB0
そもそも上位互換って言ってるのはMSじゃなくて>>625だし
2021/02/14(日) 09:16:57.56ID:KRyWJVgF0
禿道
2021/02/14(日) 09:23:18.05ID:BvP4KASJ0
>>627
そのGDI+ももう明確にレガシーとされたしね。Forms使ってる人もDirectXにしろってことなんだろう。
2021/02/14(日) 09:25:17.46ID:KRyWJVgF0
ザマリンはskia
2021/02/14(日) 09:33:25.22ID:q1FxdJ8A0
formと互換性あるとかかなり痛い人だな
2021/02/14(日) 11:00:50.44ID:zLYzvO1s0
>>643
作ろうと思えば作れるだけマシ
WPFはちょっと頑張れば最新ゲームのUIかのようなトリッキーなものも普通に作れるからな
WinFormsで同様の事をしようとするとOnPaintオーバーライドするなりしてGDIやDirect2Dで自力描画しないといけない(描画のみならずマウスの感知動作なども自力計算)
実際俺は自力描画でWinForms版マテリアルデザインとか昔作ってたけど
650デフォルトの名無しさん (アウウィフ FFc3-olyV)
垢版 |
2021/02/14(日) 11:35:44.81ID:PGTjJwEIF
+1
2021/02/14(日) 13:02:54.63ID:QrfVAGKh0
>>649
俺もWPFでそれなりのことをやってるが、
そもそも業務アプリにはそんな「トリッキー」な機能は要らん
他の人も言ってるが、WinFormsで充分
…という話がまだ理解できないのか?
2021/02/14(日) 13:08:44.18ID:n35aAobg0
テンプレに書かれている日本語理解できないのか?
2021/02/14(日) 13:20:53.69ID:UC+EmpeR0
>>652
日本語初心者なんでしょう
2021/02/14(日) 13:22:05.52ID:BvP4KASJ0
作ろうと思えば作れるって話なのに、そんなもの要らん→だからFormsで充分、と
飛躍するところがいかにも頭が悪い。
2021/02/14(日) 13:25:35.27ID:zLYzvO1s0
>>651
別に俺はWinForms要らないとも言ってないしWPFマンセーする気はない
小規模アプリであれば「WinFormsで十分」は同意だけど、中規模以上だと何だかんだでMVVMのが生産性高いしカスタム要素が必要になる率も高いから「WPFで十分」も同様に言えるんだけどな
まぁ俺はそもそもqt派だからもう全然まともにデスクトップ開発でC#使ってないが
2021/02/14(日) 13:35:12.11ID:N/o0G9JEM
トリッキーな機能は要らないからプレゼンテーションはフレームワークにおまかせして
人間はモデルの実装に集中しようぜ
それができるのがMVVM、MVUだよって話だろ
WinFormsだと一番省力したいプレゼンテーションで疲弊するじゃん
657デフォルトの名無しさん (ワッチョイ a701-pCKf)
垢版 |
2021/02/14(日) 13:39:25.24ID:wyKYn9A/0
ご移動下さい。
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
https://mevius.5ch.net/test/read.cgi/tech/1612522463
2021/02/14(日) 14:04:10.76ID:k4XbJN7x0
MVVMなんかいらないよ
いらないから誰も使ってないんじゃん
2021/02/14(日) 14:14:37.91ID:/ikZE8v50
MVVMは単なるXamlの付属品じゃなくて、Prism.Unityを中心としたページ遷移型のアプリケーション構築
EventAggregatorによる疎結合のイベント通知、DIコンテナによるモジュールの管理なども有る
勿論web系でも使われている技術だけど、Formsではあまり使わない技術だね
ここらへんを一度使っちまうとFormsには戻りたくなくなる
2021/02/14(日) 14:34:25.50ID:k4XbJN7x0
>>659
嘘じゃん
画面直したら処理も書き換えだよ
そんな嘘ばっかり言ってるから誰も相手にしなくなった
2021/02/14(日) 14:43:14.04ID:UC+EmpeR0
冗談のつもりだったのにホントに日本語理解できてないのか?

ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1469538912/
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
https://mevius.5ch.net/test/read.cgi/tech/1612522463

移動できない奴は、バカなのでぼくの主張は間違ってますって言ってるのと一緒だと気付けよ
2021/02/14(日) 16:08:58.24ID:HSnUb3X8p
全部Microsoftが悪い
2021/02/14(日) 17:40:25.04ID:qsBeAXJea
何度も言うけどこんな過疎スレでなんで一生懸命「交通整理」してるのか、
その自分の動機の卑しさを自覚できない奴が一番バカっぽいと思うよw

誰かのため?みんなのため?
絶対違うよねそれ。
いやこれマジで大丈夫か。
2021/02/14(日) 19:57:36.92ID:xK5MF7GG0
>>616
615じゃないけど質問です
>基本的にはUIスレッドで待つ・結果を得るならTaskをawaitするだけ
wpfで結果を得てプロパティを変更しイベントが発生する場合
Dispatcher.BeginInvokeは必要ですか ?
2021/02/14(日) 20:12:15.63ID:ZZdmuf4k0
>>663
移動しない理由は何?
頭のいい回答を期待してる。
2021/02/14(日) 20:44:22.17ID:xqD1GcXH0
>>663
死ねよ
2021/02/14(日) 20:53:10.91ID:K2VDjDyL0
Ruby on Rails で、控えめなJS フレームワークの、Stimulu を使えば良い

規約で、HTML のdata-controller 属性で、JSファイル名・コントローラーが決まるので、
そこにイベント処理を書くだけ

DOM・コントローラーは、多対多

1つのDOMは、複数のコントローラーで処理できる。
HTML内で、同じコントローラーを複数定義できる
2021/02/14(日) 21:14:32.55ID:RwzQEShB0
>>664
引用してる文と質問内容が全然別物に見えるので回答できん
とりあえずINotifyPropertyChangedでのBindingならPropertyChangedは別スレッドで発生させても問題ない
2021/02/14(日) 21:22:32.21ID:EcQCs95s0
>>664
そのレスはTask使ってるのに一々同期的に取り出してそうに見えて
固まらせたくない箇所を非同期にすれば良い的な意味合いで質問と噛み合うかどうか

そのプロパティを変更するのがUIコントロールでスレッドが異なれば必要…なんだけど
TaskをConfigureAwait(false)してなければawaitは待機元スレッドに帰ってくるよ

BeginInvokeはTaskベースで使うかな?別スレッドから実行させるならProgress<T>とか
4.5未満としてもSynchronizationContext.PostやTaskSchedulerを指定してContinueWithかな
2021/02/15(月) 08:14:10.72ID:rMuvZP7r0
surfaceやipadなどで使えるクロスプラットフォームの、ペイントアプリを作ってみたいのですが、
C#が採用されているペイントソフトや3DCGソフトで有名なのってありますか?
2021/02/15(月) 08:52:18.66ID:URqj7Tc+0
>>670
Paint.NET
2021/02/15(月) 08:53:55.45ID:efsWz5OT0
>>670
Paint.NET
2021/02/15(月) 09:34:24.49ID:D0ANu2Du0
>>670
https://www.pinta-project.com/

なお paint.netのソースはwin32Api 知ってないと
キツいぞ。
projectはformだがwindow周りの実装は
ほぼwin32apiだ
2021/02/15(月) 11:14:53.43ID:r1R8Fv3d0
int port;
に対して
if( port < 1 && 65535 < port )
みたいなtrueになりえない条件文ってコンパイル時の警告出せないんでしたっけ?
2021/02/15(月) 15:06:53.89ID:Hxbo2jbM0
>>668,669
質問が下手ですみません。質問を変えます

private async void Button_Click(object sender, RoutedEventArgs e)
{
Button.IsEnabled = false;
await Task.Delay(2000);
Button.IsEnabled = true; // *1
}
タスクが完了したときにUIスレッドが作業中だったとします。
そうすると、UIスレッドは作業を中断して *1を呼びますよね。
この解釈で正しいですか ?

だとすると、Buttonに対して
Button.IsEnabled += Button_IsEnabled がある場合、
UIスレッドが作業中だとUIスレッドは混乱するのではないかと思っています。

混乱を解消するには、awaitの後処理にはUIスレッドが暇になるのを待つ必要があるのではと考え、Dispatchr.BeginInvokeを思いつきました。
ただし、BeginInvokeを追加した例が見当たらないので、もっとうまい手があるのかもしれないと思い、質問しました。

長文失礼
2021/02/15(月) 15:24:35.05ID:89MhGAsi0
実際の実装は知らんがWindowsのメッセージループを処理するスレッドがUIスレッド(メインスレッド)だろうから、その手のスレッドプールで処理されるものは処理が終わった時点でメインスレッドにメッセージをポストしてメインスレッドがメッセージを受信したときに終了後の処理がされると言う流れかと
2021/02/15(月) 16:12:35.84ID:CfDXxyFV0
>>675
TaskとThreadを混同してるってオチ?
君が懸念してることは別Threadを利用したときに起こる事であって、DispatcherInvoke類も"別Thread"からUI操作を行うときに使う機能
2021/02/15(月) 17:54:07.29ID:ytBU07x20
>>675
作業を中断して*1を呼ぶというのは不適切に感じます。中断というならButton_Clickがawaitで後続処理が保留になる所でしょうか
そうなると*1が再開される手順ですが、UI処理はメッセージ単位なので>>676が仰る様なその合間に完了を感知してになると思います
このメッセージキューがパフォーマンスや互換性問題から専用スレッドによる処理が前提なのでBeginInvokeなどが必要になる訳です

翻ってawaitを使うとその辺りをやってくれます。FormsやWPFで異なる手順を抽象化したものがSynchronizationContextやTaskSchedulerですが
それらを推し進めて簡便に扱えるようにしたのがasync/awaitです。※同期的待機内で非同期待機とかしなければそんなに留意する必要はありません

技術的な解説については↓等が参考になると思いますが、直下のコードについてはTaskベース世代のものではないですね
https://docs.microsoft.com/ja-jp/dotnet/desktop/wpf/advanced/threading-model?view=netframeworkdesktop-4.8
2021/02/15(月) 19:20:24.59ID:Hxbo2jbM0
>>677,678
私の例で *1のプロパティ変更と通知ではメッセージループを使っているのかもしれませんが、*1の呼び出しは awaitの後続処理ではないでしょうか

次の例はまずいのではないでしょうか。
private async void Button_Click(object sender, RoutedEventArgs e)
{
await Task.Delay(2000);
MyCLREvent(this, EventArgs.Empty);
}
2021/02/16(火) 00:47:37.27ID:yRjou++30
なにをしてまずいというのかはわからんが
各所でThread.CurrentThread.ManagedThreadId表示させて
どこでどのスレッドになってるか確認してみれば?
2021/02/16(火) 01:07:19.33ID:fNU3Qny80
>>679
*1はawaitの後続処理だけど、UIスレッドが空くまで実行されない
2021/02/16(火) 09:52:46.68ID:ZNVxOhBd0
ボタン2つ用意してこういうので確認してみては
async void btn1_Click(object sender, RoutedEventArgs e) {
await Task.Delay(2000);
Trace.WriteLine("btn1");
}
void btn2_Click(object sender, RoutedEventArgs e) {
for (int i = 0; i < 10; i++) {
Thread.Sleep(300);
Trace.WriteLine("btn2");
}
}
2021/02/16(火) 22:48:01.66ID:/yXZfRwG0
csvで数字を読み込んで、それをグラフ化して表示して、GUIの画面ごとスクリーンショットして保存するWPFプログラムを作ってます。
グラフはwindowsformhostを使ってchartコントロールで表示させています。

VisualTreeHelperでGUIの縦横サイズを取得して、RenderTargetBitmapにDrawingVisualを渡してスクリーンショットしているのですが、chart部分が保存されません
Graphics.CopyFromScreenというのも試してみましたがこちらではchartも表示されるものの、ウィンドウのドロップシャドウみたいなものが一緒に保存されてその分縦横がズレてGUIの右下が見切れます。
解決策を教えてください
2021/02/16(火) 22:58:23.73ID:92chE2An0
allowtransparencyがtrueになってるとか?
2021/02/17(水) 03:55:15.13ID:eRzk3aeWa
>>683
違ったらごめん
これじゃダメなの?
http://mevius.5ch.net/test/read.cgi/tech/1527325729/533-534
686デフォルトの名無しさん (オッペケ Src7-adQg)
垢版 |
2021/02/17(水) 14:41:28.07ID:UPYA2zP2r
ディスプレイ上の座標を指定して、
画面の指定部分をそのままフォームに表示させたいと思っています
まずこれが可能なのかが資料見つかりませんでした
可能なら、毎回スクショ切り取って保存して表示、とかせずに、リアルタイムで反映させたいです

また、そのようにして表示した画面に、拡大や色反転などの加工を行うことは可能でしょうか?
2021/02/17(水) 15:11:52.55ID:JjIbIhY/0
この辺使ってどうにかなりそうかな
試してないけど
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.screen
https://docs.microsoft.com/ja-jp/dotnet/api/system.drawing.graphics.copyfromscreen
2021/02/17(水) 16:27:46.54ID:VhEokLWI0
可能かどうかで言えばWindows標準の拡大鏡ツールで実現できてるから可能といえる
C#で実現するのにはまあまず687を試してみればいいんじゃないかな
あと著作権保護されてるコンテンツを表示してる部分は多分無理
2021/02/17(水) 21:03:31.28ID:D9ZFiUm80
PaintWindowで取れないかな
690デフォルトの名無しさん (ササクッテロ Spc7-Jyxv)
垢版 |
2021/02/17(水) 23:31:19.68ID:5a8siaYVp
リアルアイムでやるならWindows.Graphics.CaptureやDesktop Duplication APIだな
2021/02/17(水) 23:35:50.45ID:wHZs7f540
VSのProjectの構成って何仕様書で定義するものでしょうか?
外部仕様では見たこと無いのですが世間様はどうしてるんだろうと
2021/02/18(木) 00:11:30.22ID:c2uEmfa00
安心の俺様仕様
2021/02/18(木) 00:19:08.60ID:80X4NLoW0
一般的には詳細設計で各プロジェクトの構成定義する
2021/02/18(木) 08:41:32.49ID:K3tSL8mT0
世間様じゃ詳細設計で決めてるのですね
参考になります
外仕作成でプロジェクトの構造考えずプロトタイプもりもり作っていたので気になってました
2021/02/18(木) 09:18:08.93ID:fjuXbMGDa
んなもん設計書にはかかないよ
696デフォルトの名無しさん (ワッチョイ 96bb-9N8P)
垢版 |
2021/02/18(木) 09:27:17.33ID:jXEmO6nJ0
Swiftスレにも似たようなこと書いてる奴がいるから、きっとこのことをまとめてアフィブログにでもするんだろう
697デフォルトの名無しさん (ラクッペペ MMde-HHI4)
垢版 |
2021/02/18(木) 10:41:06.50ID:4sNPnSsIM
Debug.Printの引数はリリース版でも評価されますか?
2021/02/18(木) 12:42:01.95ID:DdhrYGF40
現実的にプロジェクトの構造なんて誰も気にしない
2021/02/18(木) 18:00:30.64ID:EVRbmhyV0
プロジェクトの構成なのか構造なのか
そもそも構成とか構造って具体的に何?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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