1

基于this question,但略有不同。

我不确定这是否可能。有没有办法将 UI 元素的宽度链接到另一个元素的宽度百分比

例如:

<ScrollViewer x:Name="scrollviewerWrapper">

     <TextBlock x:Name="textblock" 
                Width="{Binding Path=Width, [[[ % of ]]] ElementName=scrollviewerWrapper}" />

</ScrollViewer>

所以如果我的 ScrollViewer 是 100px,我希望我的 TextBlock 是 60% = 60px(scrollviewer 的宽度是动态的)。

4

1 回答 1

3

所以我最终使用转换器来传递一个数字。想一想,而不是百分比,我选择了总数减去固定宽度的剩余部分,因为我有一个数字。

XAML:

Width="{Binding Path=ActualWidth, ElementName=exampleElement, Converter={StaticResource MyConverter}, ConverterParameter={StaticResource ResourceKey=actionAreaWidth}}">

参数转换:

<clr:Double x:Key="actionAreaWidth">150</clr:Double>

和转换器本身:

 public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {

            double percentage = 100;
            double.TryParse(parameter.ToString(), out percentage);

            var actualWidth = (double)value;
            return actualWidth * (percentage / 100);
        }
于 2013-04-10T03:31:04.547 回答