Sie können nur versuchen, nicht eine Breite/Höhe auf Ihrem Usercontrol angeben. Es sollte zu den Steuerelementen passen, die darin gehostet werden.
<UserControl x:Class="MyUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel>
<TextBlock x:Name="TextBlock1" Text="DisplayName Goes Here" />
<local:TimeIntervalControl x:Name="TimeInterval" />
</StackPanel>
</UserControl>
Eine weitere Option ist ein IValueConverter zu verwenden, um einige schwerere Heben zu tun:
<UserControl x:Class="MyUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<UserControl.Resources>
<local:MaxValueConverter x:Key="MaxValue" />
</UserControl.Resources>
<UserControl.Width>
<MultiBinding Converter="{StaticResource MaxValue}">
<Binding Path="ActualWidth" ElementName="TextBlock1" />
<Binding Path="ActualWidth" ElementName="TimeInterval" />
</MultiBinding>
</UserControl.Width>
<StackPanel>
<TextBlock x:Name="TextBlock1" Text="DisplayName Goes Here" />
<local:TimeIntervalControl x:Name="TimeInterval" />
</StackPanel>
</UserControl>
Schweres Heben in Ihrem MaxValueConverter:
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (values == null)
{
return Binding.DoNothing;
}
return values.Max(obj => (obj is double) ? (double)obj : 0.0);
}
Es würde bei der Ermittlung der Grundursache helfen, wenn Sie buchen könnten, wie Sie Ihre Bindungen deklariert haben. Es könnte eine Vielzahl verschiedener Probleme sein. Vielen Dank! –