WPF:动态获取跨度宽度

时间:2011-08-02 15:03:48

标签: wpf html

我尝试在FlowDocument中做一些内容,以通过矩形进行高度启发。喜欢以下代码:

<FlowDocument>
    <Paragraph>
        <Span>
            here is a span.
            <Span.Background>
                <VisualBrush>
                    <VisualBrush.Visual>
                        <Rectangle Fill="Gray" RadiusX="5" RadiusY="5" Width="100" Height="50"/>
                    </VisualBrush.Visual>
                </VisualBrush>
            </Span.Background>
        </Span>
    </Paragraph>
<FlowDocument>

我想将矩形的宽度和高度设置为跨度。 我怎样才能得到跨度的实际宽度和高度,这取决于跨度的内容长度?

加入:

它不会工作。 (它在设计时出现了System.InvalidOperationException)

<FlowDocument>
    <Paragraph>
        <Span>
            Here is a span.
            <Span.Background>
                <VisualBrush>
                    <VisualBrush.Visual>
                        <Rectangle Fill="Gray" RadiusX="5" RadiusY="5" Height="50" Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Span}}, Path=Width}"/>
                    </VisualBrush.Visual>
                </VisualBrush>
            </Span.Background>
        </Span>
    </Paragraph>
</FlowDocument>

1 个答案:

答案 0 :(得分:1)

尝试这样的事情

Width="{Binding RelativeSource=
{RelativeSource FindAncestor,
AncestorType={x:Type Span}},
Path=ActualWidth}"
>

转换器对于此比例的绑定非常有用,请告诉我是否还需要转换器示例。