0
我想我可能在WPF中發現了一個錯誤,或者我可能只是不完全理解OpacityMasks的工作方式。正如您在第一張圖片上看到的那樣,我有一條菱形路徑和一個紅色圓圈。我的目標是讓鑽石外的所有東西都看不見。它適用於圓形在鑽石形狀內部,但是無論何時將其移動到其中一個角或路徑外,OpacityMask似乎都會變形或變形,正如您在第二幅圖像上看到的那樣。我的問題是,如何讓OpacityMask工作,而不管圓圈(或任何其他子元素)在哪裏。WPF OpacityMask怪異行爲
這是我的XAML代碼
<Grid Name="rootGrid">
<Grid>
<Grid.OpacityMask>
<VisualBrush Visual="{Binding ElementName=path}"/>
</Grid.OpacityMask>
<Path Name="path"
Stretch="Fill"
Fill="Cyan"
StrokeThickness="1"
Stroke="GreenYellow"
Data="M 0,-1 1,0 0,1 -1,0 0,-1"/>
<Ellipse Fill="Red"
Margin="20,-17,22,61"/>
</Grid>
</Grid>
對不起張貼的鏈接的圖像,但我沒有足夠的聲譽直接插入圖片。
任何幫助表示讚賞!
這不是一個錯誤。 VisualBrush被拉伸到整個可見的網格區域,該網格區域從-17垂直到網格的ActualHeight。在VisualBrush上設置'ViewportUnits =「Absolute」',然後將它的Viewport屬性設置爲合適的矩形。 'Viewport =「0,0,100,100」' – Clemens
謝謝,這解決了我的問題。 –