1
我試着在FlowDocument中做一些內容,通過矩形進行高亮顯示。像下面的代碼:WPF:動態獲取跨度寬度
<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>
Gab看到我更新的問題。 – mjk6026
@ mjk6026 Path = ActualWidth,它與Path = Width不同。寬度/高度是請求的或佈局大小。 ActualWidth/ActualHeight是渲染大小。有關更多詳細信息,請參閱http://stackoverflow.com/questions/607827/what-is-the-difference-between-width-and-actualwidth-in-wpf – Gab
不,不。這不是重點。它發生錯誤時,我修改寬度爲實際寬度。首先,span類沒有寬度和實際寬度的任何屬性。 – mjk6026