2013-06-29 46 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" 
       />