如何定位"选择框"使用ListView的ItemContainerStyle?

时间:2018-02-27 19:27:47

标签: c# xaml uwp uwp-xaml

我一直在阅读this文档,我想知道是否可以定位容器的选择复选框?具体来说,这件事在这里:

ListView

理想情况下,我希望它在右侧对齐。到目前为止,我已尝试使用

 <ListView.ItemContainerStyle>
    <Style TargetType="WHAT DO I WRITE HERE?">
        <Setter Property="HorizontalAlignment" Value="Right"/>
    </Style>
</ListView.ItemContainerStyle>

使用各种 TargetTypes 。是否可以定位选择框?

1 个答案:

答案 0 :(得分:1)

说实话,你在找错了地方。 ItemContainerStyle会调整margin padding以及listview项的容器的此类属性。

您需要的是style ListViewItem。幸运的是,我们可以从MSDN Documentation的{​​{3}}轻松获取。

我不会在这里粘贴整个代码,因为它很大,它会导致你需要调整的实际代码偏离焦点。

从上面链接的样式中,选择上面提到的两种样式,并参考下面的代码:

<Border x:Name="MultiSelectSquare"
            BorderBrush="{ThemeResource SystemControlForegroundBaseMediumHighBrush}"
            BorderThickness="2"
            Width="20"
            Height="20"
            Margin="12,0,0,0"
            VerticalAlignment="Center"
            HorizontalAlignment="Left"
            Visibility="Collapsed" >
      <Border.Clip>
        <RectangleGeometry Rect="0,0,20,20">
          <RectangleGeometry.Transform>
            <TranslateTransform x:Name="MultiSelectClipTransform"/>
          </RectangleGeometry.Transform>
        </RectangleGeometry>
      </Border.Clip>
      <Border.RenderTransform>
        <TranslateTransform x:Name="MultiSelectCheckBoxTransform"/>
      </Border.RenderTransform>
      <FontIcon x:Name="MultiSelectCheck"
                FontFamily="{ThemeResource SymbolThemeFontFamily}"
                Glyph="&#xE73E;"
                FontSize="16"
                Foreground="{ThemeResource SystemControlForegroundBaseMediumHighBrush}"
                Visibility="Collapsed"
                Opacity="0"/>
    </Border>

以上代码为checkbox处理tick mark with border有点SelectionMode="Multiple"

  

您要执行的所有更改必须以此样式和样式的上述代码部分完成。

请注意:我建议您不要使用VisibilityOpacity属性,因为它们是使用VisualStates修改的。不要担心它们会在运行时改变状态。