0

我想创建一个这样的列表框:

-----|-----|-----|-----|-----|--

| 是我使用边距分隔的列表框项。这工作正常。我想要的是列表框有一个包含这一行的背景。或者至少有它在后台。我尝试了一个分隔符,但这不是我想要的,因为它也是可点击的,因为我在 itemtemplate 中使用了它。

有任何想法吗?

谢谢

4

3 回答 3

0

您必须将带有控件模板的样式添加到 ListBox 项。

 <Style x:Key="{x:Type ListBoxItem}" TargetType="ListBoxItem">
   <Setter Property="SnapsToDevicePixels" Value="true"/>
   <Setter Property="OverridesDefaultStyle" Value="true"/>
   <Setter Property="Template">
     <Setter.Value>
        <ControlTemplate TargetType="ListBoxItem">
          <Border Name="Border"
                  BorderThickness="1,0"
                  BorderBrush="Black"
                  Padding="2"
                  SnapsToDevicePixels="true">
            <ContentPresenter />
          </Border>
        </ControlTemplate>
     </Setter.Value>
   </Setter>
 </Style>
于 2012-07-25T11:40:05.297 回答
0

边框控件适用于这种类型的装饰线。侧面的粗细是独立设置的,因此仅使用一侧作为一条垂直线。在相关说明中,您是否尝试过在布局中使用 Grid 控件而不是边距?

于 2012-07-26T04:10:38.467 回答
0

我正在尝试创建一个像控件一样的时间线。我现在用这个修复它:

  <ListBox.Template>
      <ControlTemplate>
            <Border BorderThickness="2" BorderBrush="Black">
                  <Grid>
                        <Rectangle Height="2" HorizontalAlignment="Stretch" VerticalAlignment="Center" Fill="Black"/>
                        <ScrollViewer Padding="{TemplateBinding Padding}">
                              <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
                        </ScrollViewer>
                  </Grid>
            </Border>
       </ControlTemplate>
  </ListBox.Template>

这在测试项目中工作正常,但我在我的主项目中遇到了一些问题。矩形保留在滚动查看器下方。嗯...取得进展。希望尽快解决这个问题。

感谢您到目前为止的回答!

于 2012-07-26T07:53:01.243 回答