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

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

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

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

XAML

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

Q&A

解決済

3回答

5074閲覧

C# XAMLでのパンくずリスト

hartman

総合スコア13

C#

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

XAML

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

0グッド

0クリップ

投稿2017/02/07 15:31

編集2017/02/08 15:44

C# XAMLでのパンくずリスト

リンク内容
このサンプルの一番上にるやつをつくりたいのですが

ただ3つ4つ並べるだけならできるのですが、これを可変にしたいです。
入れたいテキストをリストで受け取るなどして、そのリストの数だけ表示させたいです。

できれば均等かつ指定された画面のサイズいっぱいに表示させたいです。

polygonで書いた図形をテキストボックスで挟んでいるのですが、
他に描画の方法ありますでしょうか?

追記
回答ありがとうざいます。

回答にあったコードですとなぜか画面に表示されませんでした。。。

stackPanelを使っているので横に並べるのはできるのですが、
<StackPanel Name="BreadCrumbItems" Orientation="Horizontal"/>の部分に
HorizontalAlignment="Stretch"を記述しても図形が伸びてくれません。
TextBlockにも記載しましたができません。

横に並べた際にでっぱりの部分を右に出てくる図形に少しかぶさるようにすることは可能でしょうか?
また、図形なんですがXAMLのデザイナー上で横に伸ばすと左の辺の線が太くなってしまいます。
これを太くならないような方法も知りたいです。

やはり、やりたいことは最初と一緒です。
画面横いっぱいかつ均等に配置するには、HorizontalAlignment="Stretch"以外で方法はありますか?
下記のコードを少し修正するだけで横いっぱいかつ均等に配置できれば、それに越したことはないのですが、、、、
他の方法として画面のwidthを取得して、それをリストの数で割って...とかも考えてはいるのですがそこまで頭が回らないです。

テキストボックスと図形 BreadCrumbControl.xaml <Grid> <TextBlock x:Name="txb" TextAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" FontSize="20"> <TextBlock.Background> <VisualBrush> <VisualBrush.Visual> <Polygon Points="0,60 0,0 60,00 80,30 60,60" Fill="LightBlue" Stroke="#000000"/> </VisualBrush.Visual> </VisualBrush> </TextBlock.Background> </TextBlock> </Grid> スタックパネルの生成 StackControl.xaml.cs List<string> str = new List<string> {"あいうえお","かきくけこ"}; foreach(string msg in str){ BreadCrumbControl breadControl = new BreadCrumbControl(); breadControl.txb.Text = msg; this.BreadCrumbItems.Children.Add(breadControl); } StackControl.xaml <Grid> <StackPanel Name="BreadCrumbItems" Orientation="Horizontal"/> </Grid>

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

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

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

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

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

guest

回答3

0

肝は、ItemsControl.ItemsPanelで、ここをいろいろ調整すると並べ方を操作できます。
この場合、横に並ぶようになります。

<ItemsControl ItemsSource="{Binding パンくずリストList}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Horizontal"></StackPanel> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <ItemsControl.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding}"></TextBlock> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl>

投稿2017/02/08 02:02

kiichi54321

総合スコア1984

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

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

hartman

2017/02/09 14:06

回答ありがとうございました。 一応並べるというところまでは当初の考えとはだいぶ離れましたが、できるようになりました。 他にも解決していないところもありますが、別途質問します。 本当にありがとうございました。
guest

0

ItemsControl から派生している ListBox コントロールなどを
使うことをおすすめします。

複数のアイテムを自在に並べることができるようになれば、
個々のアイテムの背景に図形を置いてみたりなど、
簡単にカスタマイズできるようになります。

使い方は下記のサイトなどが参考になりますよ。
grabacr.net | ItemsControl 攻略 ~ 外観のカスタマイズ
かずきのBlog@hatena | WPF4.5入門 その56「コレクションのバインディング」

投稿2017/02/07 22:59

twyujiro15

総合スコア217

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

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

hartman

2017/02/09 14:06

回答ありがとうございました。 一応並べるというところまでは当初の考えとはだいぶ離れましたが、できるようになりました。 他にも解決していないところもありますが、別途質問します。 本当にありがとうございました。
guest

0

ベストアンサー

ただ3つ4つ並べるだけならできるのですが、これを可変にしたいです

単に可変にしたいだけなら、ListViewでItemTemplateを使ってやればいいような気がしますが

投稿2017/02/07 21:03

dojikko

総合スコア3939

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

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

dojikko

2017/02/08 20:20 編集

> HorizontalAlignment="Stretch"を記述しても図形が伸びてくれません たぶん使い方を間違っているような 自分を伸び縮みさせたいならざっくりと ・自分の幅を一つ上のコンテナ(入れ物の要素)の幅といい具合(いろいろ要求仕様がありますよね)にバインドする(外側にあわせて伸び縮み) ・自分の幅をAutoにする(内側にあわせて伸び縮み) なんかの方法を取ると思いますよ もちろん各要素の特性の影響が大きいですが.. 先にGridレイアウトシステムの理解をもう少し深めた方が近道かもしれません あとCanvasとか使ってたらすみません
hartman

2017/02/09 14:05

回答ありがとうございました。 一応並べるというところまでは当初の考えとはだいぶ離れましたが、できるようになりました。 他にも解決していないところもありますが、別途質問します。 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問