1
我有佈局問題。wpf treeview佈局
在初始窗口,一切都如預期。
當父母或子女的項目之一被點擊,一切都右對齊。我不希望出現這種情況。下面是截圖:
任何人可以幫助我嗎?
XAML佈局模板:
'文字塊' 風格
<Style x:Key="textBlock" TargetType="{x:Type TextBlock}">
<Setter Property="FontFamily" Value="Verdana"></Setter>
<Setter Property="FontSize" Value="12"></Setter>
</Style>
項目佈局:
<HierarchicalDataTemplate
DataType="{x:Type models:EntityViewModel}" ItemsSource="{Binding Children}" >
<Grid Margin="0,0,3,0">
<TextBlock Style="{StaticResource textBlock}" TextWrapping="Wrap" Width="{Binding ActualWidth, ElementName=EntityTree}">
<Hyperlink NavigateUri="{Binding Url}" RequestNavigate="Hyperlink_RequestNavigate">
<TextBlock Text="{Binding ID}"></TextBlock>
</Hyperlink>
<TextBlock Text="{Binding TypeName}"></TextBlock>
<TextBlock Text="{Binding Explanation}"></TextBlock>
</TextBlock>
</Grid>
</HierarchicalDataTemplate>
父佈局:
<HierarchicalDataTemplate
DataType="{x:Type models:ParentViewModel}" ItemsSource="{Binding Children}">
<Grid Margin="0,0,3,0">
<TextBlock Style="{StaticResource textBlock}" TextWrapping="Wrap" Width="{Binding ActualWidth, ElementName=EntityTree}" >
<TextBlock Text="{Binding ParentName}"/>
<Run Text=" kategorisinde toplam "></Run>
<TextBlock Text="{Binding ItemsCount}"></TextBlock>
<Run Text=" adet kayıt"></Run>
</TextBlock>
</Grid>
</HierarchicalDataTemplate>
可能這也是由於EntityViewModel DataTemplate中TextBlock寬度的Binding。我假設,EntityTree是整個TreeView的名稱。您強制TextBlock的寬度比整個TreeView大,因爲它在第二級縮進,這將導致TreeView嘗試使整個Textblock可見並強制滾動到右側。嘗試在第一種方法中設置固定寬度,該寬度小於或等於可用寬度。 – JanW
謝謝你的出色解釋。這似乎是合理的。通過刪除寬度屬性,正確的對齊問題已解決。 –
謝謝你。如果你喜歡,你也可以將它標記爲答案,我將它發佈爲答案。 – JanW