我有一个Rectangle
样式,用于在用鼠标指针悬停它们时突出显示Grid
行。
我想将Grid.ColumnSpan
的{{1}}属性绑定到父Rectangle
列数。有关如何做到这一点的任何想法?是绑定到父Grid
并使用转换器返回列数最佳选项?
以下是我正在尝试做的一个例子:
XAML:
Grid
答案 0 :(得分:1)
将Window.Resources修改为:
<Window.Resources>
<Style x:Key="MouseOverHighlightStyle" TargetType="Rectangle">
<Setter Property="Fill" Value="Red" />
<Setter Property="Opacity" Value="0" />
<Setter Property="Grid.Column" Value="0" />
<Setter Property="Grid.ColumnSpan" Value="{Binding Path=ColumnDefinitions.Count, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}}}" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Opacity" Value="0.3" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
您将获得父级(本示例中为Grid)ColumnDefinition.Count并将其设置为Rectangle的columnSpan。我刚尝试过它的工作原理,所以请告诉我它是否适合你
答案 1 :(得分:-1)
它并没有完全回答你的问题,但是你可以将Span设置为非常大的值,这样无论有多少列,你的Rectangle总是跨越整个区域。类似的东西:
<Setter Property="Grid.ColumnSpan" Value="2147483647" /> <!-- int.MavValue -->