WPF OpacityMask随子元素的负边距移动

问题描述:

当我将具有负边距的元素放入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

我找到了解决办法 - 对持有谁的利润率是负的(在我的情况ItemsControl的)的元素的容器设置ClipToBounds =“真”。