Czy można dostosować szerokość wszystkich bloków TextBlock w WrapPanel do rozmiaru największej blokady TextBlock w WrapPanel? Końcowym rezultatem powinno być to, że szerokość kontrolki zawierającej "Niektóre dane" ma taką samą szerokość jak kontrolka zawierająca "Jeszcze więcej danych niż wcześniej". Dołączyłem do mojego początkowego kodu jako punkt wyjścia. Użyłem ciągów jako przykładu, ale dane i szablon kolekcji mogą być dowolne, więc nie mogę polegać na długości ciągu znaków.WPF: Synchronizuj szerokość wszystkich elementów w ItemsControl
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:System="clr-namespace:System;assembly=mscorlib"
xmlns:Collections="clr-namespace:System.Collections;assembly=mscorlib"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Collections:ArrayList x:Key="data">
<System:String>Some data</System:String>
<System:String>Some more data</System:String>
<System:String>Even more data than before</System:String>
</Collections:ArrayList>
</Window.Resources>
<ItemsControl ItemsSource="{StaticResource data}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel></WrapPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border Margin="5" BorderThickness="1" BorderBrush="Black">
<TextBlock Text="{Binding}"></TextBlock>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Window>
A obraz pożądanego wyjścia:
Całkiem eleganckie rozwiązanie. To rozwiązuje mój natychmiastowy problem całkiem ładnie, bez konieczności pisania niestandardowego kodu. Czy są jakieś ograniczenia, które natychmiast przychodzą ci na myśl w tej odpowiedzi? – mortalapeman