2013-06-29 37 views
0

有人能告诉我为什么紫色路径与第二条路径不一样吗?它们在togglebutton的控制模板中设置,如下所示。此外,你可以在这里看到的结果:wpf这个路径为什么会被奇怪地缩放?

http://picpaste.com/weird_path-nxRoeKjb.jpg

  <Grid x:Name="ToggleButtonGrid" 
       Background="Navy" 
      > 
       <Path x:Name="ExpandPath" 
       HorizontalAlignment="Center" 
       VerticalAlignment="Center" 
       Stretch="Fill" 
       Fill="Gray" 
       Stroke="Purple" 
       Data="M 0 0 L 12 0 L 12 12 L 0 12 Z" /> 
       <Path 
       HorizontalAlignment="Center" 
       VerticalAlignment="Center" 
       Fill="Gray" 
       Stretch="Fill" 
       Stroke="Yellow" 
       Data="M 0 6 L 12 6 Z" /> 
      </Grid> 

,然后在ControlTemplate中的树视图设置。我不明白它为什么被调整大小。他们都只是包含在网格中。我希望网格调整大小,但我得到这

<ControlTemplate TargetType="{x:Type TreeViewItem}"> 
    <Grid> 
     <Grid.ColumnDefinitions> 
     <ColumnDefinition x:Name="TreeViewExpanderColumn" MinWidth="19" 
       Width="Auto"/> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="*"/> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition/> 
     </Grid.RowDefinitions> 
     <ToggleButton x:Name="Expander" 
      Style="{StaticResource ExpandCollapseToggleStyle}" 
      IsChecked="{Binding Path=IsExpanded, 
         RelativeSource={RelativeSource TemplatedParent}}" 
      ClickMode="Press"/> 
     <Border Name="Bd" 
     Grid.Column="1" 
     Background="{TemplateBinding Background}" 
     BorderBrush="{TemplateBinding BorderBrush}" 
     BorderThickness="0" 
     Padding="0"> 
     <ContentPresenter x:Name="PART_Header" 
       ContentSource="Header" 
       HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/> 
     </Border> 
     <ItemsPresenter 
     x:Name="ItemsHost" 
     Margin="-19,0,0,0" 
     Grid.Row="1" 
     Grid.Column="1" 
     Grid.ColumnSpan="2"/> 
+0

顶部的网格似乎被正确绘制(当我设置它的宽度和高度时)。确保底部的模板实际上使用了它,因为它目前指的是'ExpandCollapseToggleStyle',这里不存在(并且示例代码不完整)。 – Athari

回答

0

这是一个与使用路径绘制一条线和一些缩放问题。不知道发生了什么,但使用Line来修复它。

  <Path 
       HorizontalAlignment="Center" 
       VerticalAlignment="Center" 
       Stretch="Fill" 
       Fill="Gray" 
       Stroke="White" 
       Data="M 0 0 L 12 0 L 12 12 L 0 12 Z" /> 
       <Line 
       HorizontalAlignment="Center" 
       VerticalAlignment="Center" 
       Fill="Gray" 
       X1="0" 
       Y1="0" 
       X2="12" 
       Y2="0" 
       Stroke="White" 
       /> 
       <Line x:Name="VerticalCrossBar" 
       HorizontalAlignment="Center" 
       VerticalAlignment="Center" 
       Fill="Gray" 
       X1="0" 
       Y1="0" 
       X2="0" 
       Y2="12" 
       Stroke="White" 
       />