Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 绑定与多绑定=>;不同的结果_.net_Wpf_Xaml_Binding - Fatal编程技术网

.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}}"