Я знаю, что есть несколько примеров, но я хотел бы знать, есть ли альтернативное решение, так что вот :).
У меня есть приложение wpf, которое использует док-панель и имеет метки, отображаемые вверху как «заголовки». Все в порядке, пока я не разверну окно. Метки не изменяются, есть ли способ без использования сетки, чтобы это работало? Я пытался использовать сетку, но затем она отключает мою способность удалять элементы, которые, к сожалению, состыкованы :(. Любая помощь была бы отличной. Я также пытался использовать разделитель сетки, но безуспешно.
Изменить
<Window x:Class="DockPanelTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="1500">
<Window.Resources>
<LinearGradientBrush x:Key="headerBackground" StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#FFEFEEEE" Offset="0"/>
<GradientStop Color="#E7E7E7E7" Offset="1"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="selectedHeaderBackground" StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#F6CD1D" Offset="0"/>
<GradientStop Color="#EBA32A" Offset="1"/>
</LinearGradientBrush>
</Window.Resources>
<DockPanel Name="myDockPanel">
<Label Width="Auto" HorizontalAlignment="Stretch" Name="RockLabel" Content="Rock Properties" Margin="0,0,1,1" DockPanel.Dock="Left" Background="{StaticResource headerBackground}" VerticalAlignment="Top" MouseUp="RockLabel_MouseUp" />
<Button Width="Auto" Name="CloseRock" HorizontalAlignment="Stretch" Margin="0,0,1,1" Content="X" VerticalAlignment="Top" Height="26" Background="{StaticResource headerBackground}" Click="CloseRock_Click" />
<Label Width="Auto" Name="ContactsLabel" Margin="0,0,1,1" Content="Contacts" DockPanel.Dock="Left" Background="{StaticResource headerBackground}" VerticalAlignment="Top" MouseUp="ContactsLabel_MouseUp" HorizontalAlignment="Stretch" />
<Button Width="Auto" Name="CloseContacts" Margin="0,0,1,1" Content="X" VerticalAlignment="Top" Height="26" Background="{StaticResource headerBackground}" HorizontalAlignment="Stretch" Click="CloseContacts_Click" />
<Label Width="Auto" Name="FluidLabel" Margin="0,0,1,1" Content="Fluid Properties" DockPanel.Dock="Left" Background="{StaticResource headerBackground}" VerticalAlignment="Top" MouseUp="FluidLabel_MouseUp" HorizontalAlignment="Stretch" />
<Button Width="Auto" Name="CloseFluid" Margin="0,0,1,1" Content="X" VerticalAlignment="Top" Background="{StaticResource headerBackground}" Height="26" Click="CloseFluid_Click" HorizontalAlignment="Stretch" />
<Label Width="Auto" Name="RegionsLabel" Margin="0,0,1,1" Content="Regions" DockPanel.Dock="Left" Background="{StaticResource headerBackground}" VerticalAlignment="Top" MouseUp="RegionsLabel_MouseUp" HorizontalAlignment="Stretch" />
<Button Width="Auto" Name="CloseRegions" Margin="0,0,1,1" Content="X" VerticalAlignment="Top" Background="{StaticResource headerBackground}" Height="26" Click="CloseRegions_Click" HorizontalAlignment="Stretch"/>
<Label Width="Auto" Name="ProbabilitiesLabel" Margin="0,0,1,1" Content="Probabilities" DockPanel.Dock="Left" Background="{StaticResource headerBackground}" VerticalAlignment="Top" MouseUp="ProbabilitiesLabel_MouseUp" HorizontalAlignment="Stretch"/>
<Button Width="Auto" Name="CloseProbabilities" Margin="0,0,1,1" Content="X" VerticalAlignment="Top" Background="{StaticResource headerBackground}" Height="26" Click="CloseProbabilities_Click" HorizontalAlignment="Stretch"/>
<Label Width="Auto" Name="EconomicsLabel" Margin="0,0,1,1" Content="Economics" DockPanel.Dock="Left" Background="{StaticResource headerBackground}" VerticalAlignment="Top" MouseUp="EconomicsLabel_MouseUp"/>
<Button Width="Auto" Name="CloseEconomics" Margin="0,0,1,1" Content="X" VerticalAlignment="Top" Background="{StaticResource headerBackground}" Height="26" HorizontalAlignment="Right" Click="CloseEconomics_Click"/>
<Button Width="Auto" Name="RestoreButton" Content="Restore" Height="32" VerticalAlignment="Bottom" HorizontalAlignment="Stretch" Click="RestoreButton_Click"/>
<Button Width="Auto" Name="RestoreLabels" Content="Restore Labels" Height="32" VerticalAlignment="Center" HorizontalAlignment="Center" Click="RestoreLabels_Click"/>
</DockPanel>
Я хочу, чтобы метка и кнопка соответствовали окну даже сейчас, когда я увеличиваю размер окна, чтобы метки располагались поперек окна.
Grid
остановит удаление элементов. Можете ли вы опубликовать какой-нибудь xaml, который воспроизводит проблему? - person Gusdor   schedule 17.09.2015