К сожалению, это связано с проблемой шаблона расширения по умолчанию, который устанавливает горизонтальное выравнивание заголовка по левому краю вместо растяжения. Лучший способ заставить его работать - это создать новый шаблон, который устанавливает это правильно. Вот ссылка для получения дополнительной информации:
http://silverlight.net/forums/p/57142/145801.aspx#145801
Это для Silverlight, но также относится и к WPF. Другой способ сделать это - привязать ширину панели док-станции выше к фактической ширине элемента, содержащего расширитель. Это не очень хорошее решение, но оно работает. Вам нужно будет создать конвертер значений для ширины. Вот некоторый код:
[ValueConversion(typeof(double), typeof(double))]
public class OffsetDoubleConverter : IValueConverter
{
#region IValueConverter Members
public double Offset { get; set; }
public bool KeepPositive { get; set; }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double number = (double)value + Offset;
if ((KeepPositive) && (number < 0.0))
{
number = 0.0;
}
return number;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double number = (double)value - Offset;
if ((KeepPositive) && (number < 0.0))
{
number = 0.0;
}
return number;
}
#endregion
}
А в вашем xaml:
<!-- create a ref to your namespace -->
xmlns:loc="clr-namespace:YourNamespace"
...
<Window.Resources>
<loc:OffsetDoubleConverter x:Key="ExpanderConverter" Offset="-208.0" KeepPositive="True"/>
</Window.Resources>
...
<DockPanel Width="{Binding ElementName=ADifferentElement, Path=ActualWidth,
Converter={StaticResource ExpanderConverter}}">
...
Опять же, это не лучшее решение, но оно должно работать. Стоит отметить, что если вы установите слишком низкое значение смещения и привязаете его к родительскому элементу вашего расширителя, вы можете заставить Visual Studio зависать, поскольку фактическая ширина родительского элемента будет зависеть от вашей ширины расширителя.
Дайте мне знать, если эта реализация не совсем понятна. Опять же, я бы очень рекомендовал использовать собственный шаблон для расширителя. Вы можете получить шаблон по умолчанию и просто немного изменить его, чтобы он работал. Я могу опубликовать это, если хотите.