.net 绑定与多绑定=>;不同的结果
我有一个.net 绑定与多绑定=>;不同的结果,.net,wpf,xaml,binding,.net,Wpf,Xaml,Binding,我有一个TextBlock在StackPanel中。由于我正在使用texttiming,我必须根据StackPanel.ActualWidth手动设置TextBox的宽度 <StackPanel HorizontalAlignment="Stretch"> <TextBlock HorizontalAlignment="Left"> <TextBlock.Width> <MultiBinding Conve
TextBlock
在StackPanel
中。由于我正在使用texttiming
,我必须根据StackPanel.ActualWidth
手动设置TextBox
的宽度
<StackPanel HorizontalAlignment="Stretch">
<TextBlock HorizontalAlignment="Left">
<TextBlock.Width>
<MultiBinding Converter="{StaticResource WidthConverter}">
<MultiBinding.Bindings>
<Binding RelativeSource="{RelativeSource Self}" />
<Binding RelativeSource="{x:Static RelativeSource.Self}" Path="TemplatedParent.Parent.ActualWidth" />
</MultiBinding.Bindings>
</MultiBinding>
</TextBlock.Width>
</TextBlock>
为什么这是正确的工作,而不是下面的代码?(使用具有相同代码的IValueConverter
):
我的转换器可以获得堆栈面板
,但实际宽度
始终为零
<TextBlock.Width>
<Binding RelativeSource="{x:Static RelativeSource.Self}" Path="TemplatedParent.Parent.ActualWidth" Converter="{StaticResource WidthConverter}" />
</TextBlock.Width>
试试看
我认为多重绑定是在TextBlock渲染之后进行的,而(单一)绑定是在TextBlok渲染之前进行的。您好,我可能也遇到过同样的问题,绑定到图像源。我发布了一个关于它的主题和一个要测试的小项目:
Width="{Binding Path=ActualWidth,
RelativeSource={RelativeSource FindAncestor, AncestorType=StackPanel}}"