我已爲行創建單元格模板。 IsMouseOver觸發器在單個單元格上工作正常,但不會在同一行中的其他單元格上觸發IsMouseOver屬性。如何將行鼠標移至行中的所有單元格
這是細胞模板,我創建
<ControlTemplate x:Key="GridViewNewCellCoreTemplate" TargetType="telerik:GridViewCell">
<Grid>
<Border x:Name="PART_CellBorder"
Background="{Binding Background, RelativeSource={RelativeSource TemplatedParent}}"
BorderBrush="{TemplateBinding VerticalGridLinesBrush}"
BorderThickness="{Binding VerticalGridLinesWidth, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource GridLineWidthToThicknessConverter}, ConverterParameter=Right}"/>
<Border x:Name="SelectBorder"
Background="{StaticResource BrushHighlight}"
Opacity="0.2"
Visibility="Collapsed"
BorderThickness="{Binding VerticalGridLinesWidth, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource GridLineWidthToThicknessConverter}, ConverterParameter=Right}"/>
<ContentPresenter x:Name="PART_ContentPresenter"
Margin="{TemplateBinding Padding}"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/>
</Grid>
<!--Grid View row selection style only trigger-->
<ControlTemplate.Triggers>
<Trigger Property="IsInEditMode" Value="True">
<Setter Property="Padding" Value="0"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter TargetName="PART_CellBorder" Property="Background" Value="{StaticResource BrushBackground}"/>
</Trigger>
<!--chk for mouse hover-->
<!--<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="helpers:GridViewHelper.IsReadOnlyMouseOver" Value="true"/>
</MultiTrigger>-->
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True"/>
<Condition Property="helpers:GridViewHelper.IsReadOnlyMouseOver" Value="true"/>
<Condition Property="DisplayVisualCues" Value="False"/>
</MultiTrigger.Conditions>
<Setter TargetName="SelectBorder" Property="Opacity" Value="0.1"/>
<Setter TargetName="SelectBorder" Property="Visibility" Value="Visible"/>
</MultiTrigger>
<!--selection is working-->
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="True"/>
<Condition Property="DisplayVisualCues" Value="False"/>
</MultiTrigger.Conditions>
<Setter TargetName="SelectBorder" Property="Visibility" Value="Visible"/>
</MultiTrigger>
<Trigger Property="IsCurrent" Value="True">
<Setter TargetName="PART_CellBorder" Property="BorderBrush" Value="{StaticResource BrushHighlight}"/>
<Setter TargetName="PART_CellBorder" Property="BorderThickness" Value="1"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value="{StaticResource DisabledOpacity}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="GridViewCellReadOnlyStyle" TargetType="telerik:GridViewCell" BasedOn="{StaticResource GridViewCellCoreStyle}">
<Setter Property="Template" Value="{StaticResource GridViewNewCellCoreTemplate}"/>
<Setter Property="Background" Value="#fff6f6f6"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
</Style>
我怎樣才能獲得IsMouseOver在同一行的所有單元格,如果一個單元格將得到鼠標懸停?
所以它適用於第一個單元格進入,但不是爲了別人?或者你想在選擇完整行時觸發它?對不起,我正在努力理解你的意思。 – XAMlMAX
正確的,每當我進入一個單元格它的工作,但不適用於其他單元格。 @XAMlMAX –
所以,當你的鼠標進入第一個單元時,它會起作用,然後當你移動到另一個單元時它不會?對不起,但你沒有指定哪個問題是正確的。 – XAMlMAX