質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

5回答

1500閲覧

WPF コントロール配置時XAMLの各要素の属性(?)の記述順を気にしますか?

ElecDove

総合スコア254

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

0クリップ

投稿2017/08/11 12:04

お世話になります.

WPFを始めたばかりの初心者です
(HTMLはそこそこ触ったことがありますが)

最近,XAMLを直に触ることが増えてきてふと気になったことがあります.

ウインドウにコントロールを配置していく際,
多くの場合VerticalAlignment,HorizontalAlignment,Width,Height等の属性(プロパティ?正式名を教えてください)を記述していきますが,要素ごとに順番がばらばらだと目が泳いでしまいます.

かといってそろえようにも,デザイナを使ったりすると順番を気にしてくれない(適用した順?)ので整列させるのも少々労力がかかります.

そこで伺いたいのですが
①皆様は属性の順番を要素間で揃えますか?
最初はWidth,次にHeight,次に…という風に.

②属性の順番をそろえるとき,順番を自分の中のルールで決めていますか?
(①にも関連しますが,同じGroupBox内では順番をそろえる,等でも見やすくなりますが,すべてのコントロールについて順番をそろえますか?という意味です.)

③属性の順番のみならず,位置(Tab等で)も揃えますか?

以上よろしくお願いいたします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

プロパティ?正式名を教えてください

依存関係プロパティ、依存プロパティまたは単にプロパティでOKです。
構文上は属性ですが、属性は別物を指す場合が多いので混乱を避けるために私は属性とは呼びません。

①皆様は属性の順番を要素間で揃えますか?

気が向いたら揃える程度で、原則気にしません。

②属性の順番をそろえるとき,順番を自分の中のルールで決めていますか?

レイアウトに関わるものを先に書くぐらいです。その中でGrid.Row="1"などの添付プロパティは優先的に書いてます。
またレイアウトに関わるものは、極力Styleとしてまとめて書いてます。

③属性の順番のみならず,位置(Tab等で)も揃えますか?

はい、なるべく綺麗になるように気を付けてます。

投稿2017/08/12 05:00

編集2017/08/12 09:47
hihijiji

総合スコア4150

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ElecDove

2017/08/20 14:45

回答ありがとうございます お礼が遅くなってしまい申し訳ありません >依存関係プロパティ、依存プロパティまたは単にプロパティでOKです。 Xamlではこのように呼ぶのですね 教えていただきありがとうございます これで検索時にワードに悩まずに済みます >はい、なるべく綺麗になるように気を付けてます。 見た目がきれいだとコーディングもしやすいしいいことが多いという感じでしょうか 私も見た目は揃えたいと思うので参考になります
guest

0

ベストアンサー

①皆様は属性の順番を要素間で揃えますか?
②属性の順番をそろえるとき,順番を自分の中のルールで決めていますか?

プログラムの変数定義等も一緒なのですが、意味合い的なグループでまとめて記述しています。

d:DesignWidth="1024" d:DesignHeight="768" Width="1024" Height="768" WindowState="{Binding WindowState}" WindowStartupLocation="CenterScreen"

例えば、手元で開いていたコードだと、上記のようになっていました。

グループの順番的にはその時の追加順だったり、
変更される可能性の高いものが後ろにきたりしています。
また、メンテナンス性から見える範囲での順序はある程度揃えています。
同じように要素を追加する場合は同じような属性の順番の方が視認性が良いため。

③属性の順番のみならず,位置(Tab等で)も揃えますか?

上記のように大雑把に揃えています。
Width、Heightは基本セットなのと、短いので1行に書いています。

プログラムを後から読む(見る)場合に、実際には細かく読んでいるのではなく、
大きな塊として見て判断することが多いため、自然とそのような見方に沿った書き方をしている感じです。

コーディング規則は宗教論争になりがちなので自分なりの納得いく説明ができる書き方があれば良いと思います。

投稿2017/08/11 23:54

mituha

総合スコア385

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ElecDove

2017/08/20 14:43

回答ありがとうございます お礼が遅くなってしまい申し訳ありません >上記のように大雑把に揃えています。 >Width、Heightは基本セットなのと、短いので1行に書いています。 >自分なりの納得いく説明ができる書き方があれば良いと思います。 皆様それぞれの書き方をある程度お持ちなのですね 間違いはあっても正解はないように感じました
guest

0

「XAML Styler」拡張機能を使用してください。
Home · Xavalon/XamlStyler Wiki

C#コードもそうですが、手作業で並び替える等はナンセンスです。
自動フォーマットで常に一貫した書式にそろえましょう。

デフォルト設定は行数が増えがちですが、設定は豊富なので大抵の好みに対応できると思います。

わたしは↓だけ変えています。
Enable markup extension formatting:False

投稿2023/11/17 10:15

TN8001

総合スコア9309

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TN8001

2023/11/17 10:17 編集

別件でggっていたら見つけたので今更ながら^^; 当時もあったと思うんですがどうだったんでしょうね。
guest

0

①皆様は属性の順番を要素間で揃えますか?
②属性の順番をそろえるとき,順番を自分の中のルールで決めていますか?

nameやGrid.Rowなどあとで見て優先的に確認したい属性はなるべく前に設定するようにしています。
Gridなどは行ごと列ごとに確認したいことが多いので下記のように1行で記述するようにしています。

XAML

1<TextBox Grid.Row="1" Grid.Column="1" Name="AddressTextBox"/> 2<TextBox Grid.Row="2" Grid.Column="0" Text="建物名"/>

属性の数が多くどうしても改行しないと見にくい場合は下記のようにしています。

XAML

1<TextBox 2 Grid.Row="1" 3 Grid.Column="1" 4 Name="AddressTextBox"/> 5<TextBox 6 Grid.Row="2" 7 Grid.Column="0" 8 Text="建物名"/>

③属性の順番のみならず,位置(Tab等で)も揃えますか?

必ずTabで揃えています。

投稿2017/08/14 02:25

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ElecDove

2017/08/20 14:47

回答ありがとうございます お礼が遅くなってしまい申し訳ありません >必ずTabで揃えています。 プロパティを個別に改行なさっているのですね 自分は画面から見切れない限りは一行に収めたいと思っているのですが(PCの画面は縦のほうが短いので情報量を増やしたいため),このような簡潔なプロパティでも複数行に分ける理由は何かありますでしょうか
退会済みユーザー

退会済みユーザー

2017/08/21 01:45

上記はあくまで記入例で、短い場合はなるべく1行で書いています。 ただなるべく1行or複数行(上記のような例)のどちらかで統一するようにはしています。 ソースをしっかり読むのではなくざーっと流し読みするときに同じ書式になっているほうが見やすいからです。
ElecDove

2017/08/22 13:39

>短い場合はなるべく1行で書いています そうだったのですね,失礼いたしました 関数やifなどの中カッコを改行するかしないかみたいな論争に近いものを感じます笑 ほかの方の回答も含め「流し読み」というワードが何度か出てきたように思います この辺がキーポイントなのですね 私も見やすいコーディングを心がけたいと思います ありがとうございました
guest

0

①皆様は属性の順番を要素間で揃えますか?

デザイナを使わない(XAMLはほぼ手書き)ので、そのコントロールに対する重視度(?)が高いものが自然に優先されている(前に来ている)ことが多い

②属性の順番をそろえるとき,順番を自分の中のルールで決めていますか?

このコントロールにはこれとこれを書かなきゃならないっていうのが決まっているので、だいたいそれを書くとだいたい揃いますね

③属性の順番のみならず,位置(Tab等で)も揃えますか?

これはVisualStudioにおまかせしています

最近あまりありませんがVisualStudioの機嫌が悪いとせっかく揃えたものがめちゃくちゃにされてしまうことがありましたねぇ

全く参考にならない気もしますが..

投稿2017/08/12 12:53

dojikko

総合スコア3939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ElecDove

2017/08/20 14:46

回答ありがとうございます お礼が遅くなり申し訳ありません >そのコントロールに対する重視度(?)が高いものが自然に優先されている(前に来ている)ことが多い 何が重要かというのはやはりコントロールによって変わるものだと思います ということはコントロール単位である程度順番が決まっている感じでしょうか >最近あまりありませんがVisualStudioの機嫌が悪いとせっかく揃えたものがめちゃくちゃにされてしまうことがありましたねぇ 何度か食らったことがあります 勘弁してほしいものですw
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問