2012-06-28 51 views
0

为了显示上的工具箱对象,并允许用户拖动/拖放到我用的帆布以下控制:路径和XAML控制

<HeaderedItemsControl x:Key="itemABC" 
       Width="100" 
       Height="100" 
       Canvas.Left="210" 
       Canvas.Top="220" 
       Margin="0,0,0,0" 
       Style="{StaticResource ABC_Style}"> 

</HeaderedItemsControl> 

在风格定义:

<Style x:Key="ABC_Style" TargetType="HeaderedItemsControl"> 
    <Setter Property="Data" Value="M10.395,0.5 L30.237,0.5 30.237,5.0359993 39.499999,5.0359993 39.499999,22.75 30.237,22.75 30.237,42.660999 39.499999,42.660999 39.499999,60.375 30.237,60.375 30.237,65 10.395,65 10.395,58.124999 0.5,58.124999 0.5,10 10.395,10 z"/> 
</Style> 

但是,问题是HeaderdItemsControl没有路径属性(据我所知),所以我想知道我可以在这里有什么其他选项。

事实上,我需要在XAML中的HeaderedItemsControl中显示一个路径。

谢谢。

+0

您应该将'Header'属性设置为'Path'对象,并将其作为其Data属性。如果这是解决方案,让我知道,我会做出答案。 –

+0

如果你的意思是改变“数据”为“标题”,那么我累了它,但没有影响它。它运行良好,但没有内容。谢谢 –

回答

0

这个例子的工作原理:

<Window x:Class="WpfApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Window.Resources> 
     <Style TargetType="HeaderedItemsControl"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type HeaderedItemsControl}"> 
         <StackPanel> 
          <Grid> 
           <Rectangle Fill="{TemplateBinding Background}"/> 
           <ContentPresenter ContentSource="Header"/> 
          </Grid> 
          <Grid> 
           <Rectangle Stroke="{TemplateBinding BorderBrush}"/> 
           <ItemsPresenter Margin="2,0,0,0"/> 
          </Grid> 
         </StackPanel> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
     <PathGeometry x:Key="ABC_Style"> 
      M10.395,0.5 L30.237,0.5 30.237,5.0359993 39.499999,5.0359993 39.499999,22.75 30.237,22.75 30.237,42.660999 39.499999,42.660999 39.499999,60.375 30.237,60.375 30.237,65 10.395,65 10.395,58.124999 0.5,58.124999 0.5,10 10.395,10 z 
     </PathGeometry> 
    </Window.Resources> 
    <Grid> 
     <HeaderedItemsControl> 
      <HeaderedItemsControl.Header> 
       <Path Stroke="Black" Data="{StaticResource ABC_Style}" /> 
      </HeaderedItemsControl.Header> 
     </HeaderedItemsControl> 
    </Grid> 
</Window> 

HeaderedItemsControl默认样式不正常实际上包括头,超出我的原因。此外,您试图将标题设置为路径数据的方式并不正确,因此我通过将PathGeometry定义为静态资源,然后将Path用作Header来修复它。

+0

由于给定的设计,我已经在中使用了这两个块。在这种情况下应该改变什么? –

+0

感谢您使用与您一样的技巧和XAML中的一些小调整。谢谢!!! –