WPF的ItemsControl与DataTemplate中,有一些项目增加了一倍边界问题

问题描述 投票:1回答:1

我有一个自定义的DataTemplate简单的ItemsControl,模板只包含边界文本块。所有项目应当竖向显示了一个又一个,但有些项目具有额外的边界。我怎样才能删除它?

我想实现类似于ENSO发射器的东西,它看起来像

我的实现看起来是这样的

这里是我的XAML代码:

<Window x:Class="winmole.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" 
    x:Name="hostWindow"
    Height="Auto"
    MinHeight="100"
    MinWidth="100"
    Width="Auto"
    Padding="10"
    AllowsTransparency="True" WindowStyle="None" Background="Transparent"
    Top="0"
    Left="0"
    SizeToContent="WidthAndHeight"
    Topmost="True"
    Loaded="Window_Loaded"
    KeyUp="Window_KeyUp" 
    >
<Window.Resources>

    <!--Simple data template for Items-->
    <DataTemplate x:Key="itemsTemplate">
        <Border Background="Black" Opacity="0.9" HorizontalAlignment="Left" CornerRadius="0,2,2,0">
            <TextBlock  Text="{Binding Path=Title}" 
                 TextWrapping="Wrap" 
                 FontFamily="Georgia" FontSize="30" 
                 Height="Auto"
                 HorizontalAlignment="Left" 
                 VerticalAlignment="Stretch" 
                 TextAlignment="Left" Padding="5" Margin="0" Foreground="Yellow"/>

        </Border>

    </DataTemplate>
</Window.Resources>

<DockPanel>

    <ItemsControl DockPanel.Dock="Bottom" Name="itcPrompt"  
                  ItemsSource="{Binding ElementName=hostWindow, Path=DataItems}"
              ItemTemplate="{StaticResource itemsTemplate}"  >
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel Orientation="Vertical" />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
    </ItemsControl>

</DockPanel>

wpf datatemplate border itemscontrol textblock
1个回答
1
投票

如果我没有理解你的问题:尝试设置SnapsToDevicePixels="True"在边境

<Border SnapsToDevicePixels="True" Background="Black" Opacity="0.9" ...
© www.soinside.com 2019 - 2024. All rights reserved.