我在WPF樹視圖所顯示出一些奇怪的行爲(至少我認爲這是奇怪)。我沒有看到任何地方我可以附加圖像,但基本上在一些項目上,它看起來像是雙倍間隔或有一個額外的3px左右的餘量,有些看起來像是單間隔。這裏是XAML定義它:樹狀視圖顯示隨機的額外空間
<TreeView Margin="5,0,0,5" ItemsSource="{Binding SortedCategories}" HorizontalContentAlignment="Stretch">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type COBie:CategoryData}" ItemsSource="{Binding SortedTypes}">
<CheckBox IsChecked="{Binding AnyChecked, Mode=TwoWay}" Content="{Binding CategoryName}" IsEnabled="{Binding HasTypes}" />
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type COBie:InstanceData}">
<CheckBox IsChecked="{Binding isChecked, Mode=TwoWay}" Content="{Binding ElemID}" />
</DataTemplate>
<DataTemplate DataType="{x:Type COBie:TypeData}">
<TreeViewItem IsEnabled="{Binding HasInstances}" HorizontalContentAlignment="Stretch">
<TreeViewItem.Header>
<CheckBox IsChecked="{Binding isChecked, Mode=TwoWay}" Content="{Binding ElemName}" />
</TreeViewItem.Header>
<ListView ItemsSource="{Binding SortedInstances}">
<ListView.View>
<GridView>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding isChecked, Mode=TwoWay}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="ID" DisplayMemberBinding="{Binding ElemID}" />
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding ElemName}" />
<GridViewColumn Header="Mark" DisplayMemberBinding="{Binding Mark}" />
<GridViewColumn Header="Room" DisplayMemberBinding="{Binding RoomDisplay}" />
</GridView>
</ListView.View>
</ListView>
</TreeViewItem>
</DataTemplate>
</TreeView.Resources>
</TreeView>
將適用這一點的唯一其他相關的風格是:
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="{Binding IsExpanded}" />
</Style>
我沒有看到,在所有定義保證金和任何地方,即使它做了所有的元素是相同的類,所以它應該適用於所有的平等。
任何人都知道發生了什麼事?
此外,我仔細檢查了ElemName值,以查看是否顯示額外空間並且ElemName屬性的值中沒有額外的空格或換行符(這就是正在顯示的內容... – sfaust
還行我仍然不明白爲什麼會發生這種情況,我試圖在頭文件中對複選框的高度進行硬編碼,邊距保持不變,因爲它看起來像一個邊距,所以我試圖將邊距編碼爲0,沒有變化。如果不是在複選框定義中使用Content = {Binding ElemName},而是將其擴展爲 並且它看起來很正常,但我不確定爲什麼,工作......如果任何人可以闡明爲什麼第二次工作,而不是第一次,我會把它標記爲答案... –
sfaust