首页 新闻 会员 周边

关于 WPf TreeView 布局美化得一个问题

0
悬赏园豆:80 [待解决问题]

想用TreeView实现如下效果

 

可是做出来确实这样的效果

存在的问题:

 1:TreeView 自带的折叠图标怎么也去不掉。
2. 背景图片 总是不能从最左边开始。

附上xaml代码:

 

View Code
<TreeView Name="dictree" ItemsSource="{Binding}" Grid.Row="1" BorderThickness="0" Margin="0">
<TreeView.Resources>
<HierarchicalDataTemplate ItemsSource="{Binding Value}" DataType="{x:Type local:Job}">
<TextBlock Text="{Binding Id}"><TextBlock Text="{Binding Name}"></TextBlock></TextBlock>
</HierarchicalDataTemplate>
</TreeView.Resources>

<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Value}">

<TreeViewItem>
<TreeViewItem.Background>
<ImageBrush ImageSource="tvheadbg.png" />
</TreeViewItem.Background>
<TreeViewItem.Header>
<Border Name="SelectedBorder" CornerRadius="3" BorderBrush="#99DEFD" BorderThickness="1" >
<StackPanel Orientation="Horizontal" Height="29">
<Image Source="tHome.png" Height="16" Width="16" Margin="8,0,0,0" />
<TextBlock Text="{Binding Key}" VerticalAlignment="Center" Margin="8,0,0,0"></TextBlock>
</StackPanel>
</Border>
</TreeViewItem.Header>
</TreeViewItem>

<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<StackPanel HorizontalAlignment="Left" Height="29" Orientation="Horizontal" VerticalAlignment="Center">
<Image Source="tHome.png" Height="16" Width="16" Margin="8,0,0,0" />
<TextBlock Text="{Binding Name}" Margin="8,0,0,0"></TextBlock>
</StackPanel>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>

 

问题:
1. 怎么让背景从左边开始?
2. 如果去掉TreeView自带的折叠图标?
3.或者大家有没有更好的思路,做出我想要的效果?

Demo下载地址:http://www.bibihi.com/demo.rar  (55kb)

希望给位大侠能够提供好的解决方案,并附上源码,不胜感激

 

 

 

sjh10的主页 sjh10 | 初学一级 | 园豆:5
提问于:2011-02-25 16:03
< >
分享
所有回答(1)
0

代码就不看了,给个调试wpf的UI的办法吧

将分级容器的background属性设置为不同的颜色,看看你的左侧就是什么东西占据了那部分空间,然后在想办法解决。

该方法对于一般的UI调试都很给力

xiao_p | 园豆:608 (小虾三级) | 2011-02-28 23:10
不让我修改评论,实现思路,如果是我个人的话,我建议不要使用treeview之类的控件,而是通过usercontrol去做。
这样的自定义control要灵活的多。
同时,也可以自定义模板,样式等,方便扩展。
支持(0) 反对(0) xiao_p | 园豆:608 (小虾三级) | 2011-02-28 23:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册