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/
2デフォルトの名無しさん
垢版 |
2019/05/16(木) 12:11:07.29ID:7Bq3MhCf
2
2019/05/16(木) 13:49:41.99ID:fwGb8lUO
スレタイXAMLはあったほうがよかったんじゃ?
2019/05/16(木) 14:58:46.33ID:6HLPrznt
UWPは別のスレがあるな
2019/05/16(木) 19:32:09.26ID:lkxfo5od
前スレから
https://devblogs.microsoft.com/dotnet/introducing-net-5/
2019/05/16(木) 20:00:20.87ID:O824UyCl
WPFにx:bind来てくれないのかいぃぃ
2019/05/17(金) 16:05:39.31ID:GiXqVPbm
ゲームエンジン作れますか?
2019/05/17(金) 16:23:31.74ID:GiXqVPbm
openfiledialogとsystem.diagnostics.process.startの違いはなんでしょうか
openfiledialogのほうがエクスプローラが開かなかったですが
実現したいのは、フォルダを開いてファイルを選択するというものです

var dialog = new OpenFileDialog();
dialog.InitialDirectory = @"C:";

System.Diagnostics.Process.Start("explorer.exe",@"c:");
2019/05/17(金) 17:30:07.31ID:GiXqVPbm
openfiledialogはファイルを開くためのものですね
勘違いすてまし
2019/05/17(金) 17:40:31.39ID:GiXqVPbm
wpfでフォルダのファイルを、リストビューなどで表示するには何を使用するんでしょうか
2019/05/17(金) 18:23:47.47ID:xZgfJxB6
リストビューで表示するんなら使用するのはリストビューでしょw
2019/05/17(金) 18:44:46.93ID:GiXqVPbm
https://dobon.net/vb/dotnet/file/getfiles.html
wpfでaddrangeが出てこないのですが、なぜでしょうか
addしか出てきません
addrangeはSystem.Collections.Generic;に含まれるそうですが、これはきちんと記述しています


>>11
表示するコントロールはそうなんですが、一覧を取得する方法を調べてました
2019/05/17(金) 19:04:56.93ID:zsP3biP5
>>12
Formsのほうのサンプルじゃないの?
2019/05/17(金) 19:24:12.06ID:GiXqVPbm
>>13
wpfじゃないんですかね
だとしたら何を使うんでしょうか

マイクロソフトのリファレンスはC#用とwpf用わかれてるわけではないんですよね?
2019/05/17(金) 19:55:42.73ID:GiXqVPbm
for使うことになってるんすかね?
2019/05/17(金) 20:00:22.36ID:efANPUq5
this.ListBox1.ItemsSource = Directory.EnumerateFiles( @"C:\Windows" );
17デフォルトの名無しさん
垢版 |
2019/05/17(金) 20:04:39.86ID:efANPUq5
もしくは
foreach ( var file in Directory.EnumerateFiles( @"C:\Windows" ) )
{
this.ListBox.Items.Add( file );
}
2019/05/17(金) 20:07:19.28ID:R147Wd4Y
>>14
リファレンスは分かれてるというか、違う。名前空間が。
datagrid にしても、forms で使用されているコントロールとwpfで使用されている物とは違う。
webにあるサンプルなど、どちらのコードかってのは、明記されてない限り読み込まないとわからない
2019/05/17(金) 20:23:25.50ID:GiXqVPbm
for (int i = 0;i< files.Length;i++) {
listbox_right.Items.Add(files[i]);

}

>>16,17
これでいけました
ありがとうございます
addrangeはないみたいなので、ループしないと駄目なんですね

>>18
名前空間で判断するしかない感じですか
formと共通してるものもあれば、違うものもあるって感じで、ごっちゃになってて少し分かりづらいですね
20デフォルトの名無しさん
垢版 |
2019/05/18(土) 12:57:14.57ID:vGWC+tVZ
>>19
>addrangeはないみたいなので、ループしないと駄目なんですね

違うんじゃないかな。あなたが、>>16の手段使わずに、>>17の手段つかった
からじゃないの?
2019/05/18(土) 19:02:24.50ID:M6x4drXG
wpfでレイアウトしたいです
よくある、左、中央、右というペインを作りたいです
単純にグリッドを3つ並べるだけでは駄目なようですが、良いコントロールはありますか?

>>20
そうかもしれません、、、
22デフォルトの名無しさん
垢版 |
2019/05/18(土) 19:28:57.10ID:vGWC+tVZ
>>21
先の質問についてだけど、データバインドを理解していないんじゃないだろうか
WPF使うんだったら、データバインド使わないと損ですよ。
2019/05/18(土) 19:32:47.57ID:GtOtQ7tS
>>21
レスであるように、先にバインド覚えたほうがいいよ。いっぱいコントロール自作することになるから
2019/05/18(土) 19:42:11.85ID:4KuUGYIj
>>21
Gridを分割するかDockPanel
境界をマウスで動かしたりしたいなら前者
2019/05/18(土) 20:10:22.57ID:M6x4drXG
>>24
gridですか
formにあったsplitcontainerみたいなのがなくなっていたんでわからなかったです

>>22,23
知らなかったので。今バインドってのをやってみました
Xamlに変数をバインドしておいて、プログラム側でそれを書き換えるというイメージでいいんですか?
<Button Content="{Binding X}" />
みたいな感じですね
解説が難しいのでなんのメリットがあるのかイマイチわかりませんが、Xaml側のX変数が複数だった場合、手作業で何箇所も書き直すより効率的だねってことですかね。または、フォームを複数作った場合、別のフォームでも数値を共有できたり。
2019/05/18(土) 20:32:07.67ID:ejkLT9cK
WinFormsの事は忘れるんだ
2019/05/18(土) 20:46:12.34ID:M6x4drXG
忘れます
もともとwinformのソフトの文字がちっちゃくて、不満だったから自分でつくろうと思ってるので
あれって、拡大とか出来ないんですね
2019/05/18(土) 21:51:41.94ID:XXYGI5ia
Data Binding なら、Vue.js だろ
2019/05/18(土) 22:35:23.21ID:4jqg+g7M
>>21
レイアウト関係はパネルっていう種類のコントロールを使う
ここをGoogle翻訳につっこんで読むといい
https://wpf-tutorial.com/panels/introduction-to-wpf-panels/
そんな難しい英語じゃないからそのまま読んでもいいけど
2019/05/19(日) 08:39:23.42ID:A9JEys8J
>>29
どうも ベースはグリッドでやってみます
2019/05/19(日) 09:46:46.46ID:1wu/sFtt
>>30
他のパネルあるのになんでグリッド使うの?
2019/05/19(日) 10:06:41.73ID:A9JEys8J
>>31
wpfだとグリッドが一般的なやり方だと思っていたからです
どういうセオリーがあるのかまだわかっていません
2019/05/19(日) 10:26:31.56ID:1wu/sFtt
>>32
>>29読めよ
2019/05/19(日) 10:47:57.25ID:rGWK4TSn
StackPanelしか使ったことないな…
2019/05/19(日) 11:06:57.27ID:A9JEys8J
>>33
読みました
エクスプローラのような3ペインにどれが適切かわかりませんから、今ひとつずつやってます
2019/05/19(日) 11:51:22.73ID:A9JEys8J
今stackpanelを使っていますが、エクスプローラのように左右が細長くて、
20% 60% 20%というふうに出来ますか?子要素に何を指定するといいですか?%指定は出来ないようです。
絶対値を指定すると全画面にしたときにレイアウトが崩れるから駄目ですよね
2019/05/19(日) 12:26:40.42ID:A9JEys8J
更に境界線を←→で調整したいです
チュートアレば教えてください
2019/05/19(日) 12:42:10.72ID:nGjZxT14
>>37
GridSplitter
2019/05/19(日) 13:11:30.58ID:PmP7x88s
>>37
https://blog.okazuki.jp/entry/2014/12/27/200015

ここをイチから読みなせえ
2019/05/19(日) 13:58:42.30ID:A9JEys8J
↑あい
2019/05/19(日) 16:35:16.33ID:A9JEys8J
>>38
どうも 自動で境界線にフィットしてくれるんですねこれ
<StackPanel Orientation="Horizontal">
<Button Content="hoge" />
<GridSplitter HorizontalAlignment="Stretch" Width="5"/>
<Button Content="hoge" />
<Button Content="hoge" />
</StackPanel>
でもこれやっても動作しないのはなぜでしょうか?
ボタンも画面いっぱいまで広がりません。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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