2016-02-28 37 views
0

當我將具有負邊距的元素放入ie中時。與OpacityMask邊界,面具也會移動。WPF OpacityMask隨子元素的負邊距移動

有誰知道是否有辦法將不透明蒙版應用於Border控件的視口,而不管任何邊距?

我想實現的是隻有邊框內容的文本中心線應該完全可見。我通過將邊框內該元素的邊距設置爲負值來移動文本(實際上是一個ItemsSource)。這創造了一個很酷的效果,其他線條也不透明,因此中線顯然是當前線條。不幸的是,WPF也會移動我的蒙版,因此當我移動內容時,完全可見的線條也會在邊框控件中向上移動。

<Popup x:Name="PART_Popup" 
      VerticalOffset="{TemplateBinding TumblerVOffset}" IsOpen="{TemplateBinding IsTumblerVisible}" 
      PlacementTarget="{Binding RelativeSource={RelativeSource AncestorType={x:Type controls:TouchEditBox}}}" 
      MinWidth="{TemplateBinding TumblerWidth}" AllowsTransparency="True" 
      Height="{TemplateBinding TumblerHeight}" Placement="Relative"> 
    <Border Background="{StaticResource TumblerBackground}" BorderBrush="White" BorderThickness="1"> 
     <Border.OpacityMask> 
      <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> 
       <LinearGradientBrush.GradientStops> 
        <GradientStop Color="Transparent" Offset="0.0" /> 
        <GradientStop Color="Black" Offset="0.4" /> 
        <GradientStop Color="Black" Offset="0.6" /> 
        <GradientStop Color="Transparent" Offset="1.0" /> 
       </LinearGradientBrush.GradientStops> 
      </LinearGradientBrush> 
     </Border.OpacityMask> 
     <ItemsControl ItemsSource="{Binding TumblerHandler.Tumblers, RelativeSource={RelativeSource TemplatedParent}}" 
            HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"> 
      <ItemsControl.ItemsPanel> 
       <ItemsPanelTemplate> 
        <StackPanel Orientation="Horizontal" /> 
       </ItemsPanelTemplate> 
      </ItemsControl.ItemsPanel> 
     </ItemsControl> 
    </Border> 
</Popup> 
+0

我找到了一個解決方案 - 在容器上設置ClipToBounds =「True」,它包含了Margin爲負的元素(在我的情況下爲ItemsControl)。 – uTILLIty

回答

0

我找到了解決辦法 - 對持有誰的利潤率是負的(在我的情況ItemsControl的)的元素的容器設置ClipToBounds =「真」。