2010-09-15 33 views
0

我试图改变silverlight菜单的listboxitem样式。
WPF:改变列表框样式,平滑边界之间的转换

The result I need should look like something like this

这甚至可能?如果是的话:
我怎么能accieve呢?

用于菜单当前XAML代码:

<Style x:Key="LeftMenuStyle" TargetType="ListBoxItem"> 

<StackPanel Orientation="Horizontal" Margin="12"> 
    <Border BorderBrush="OliveDrab" CornerRadius="40" BorderThickness="5"> 
    <Image Source="../Resources/cancel.png" Width="50" Height="50" /> 
    </Border> 
    <Border CornerRadius="5" Width="180" > 
    <Border.Background> 
    <SolidColorBrush Color="OliveDrab"/> 
    </Border.Background> 
    <Border Padding="10,0,0,0"> 
    <ContentPresenter VerticalAlignment="Center" Content="{TemplateBinding Content}" /> 
    </Border>   
    </Border> 
    </StackPanel> 
</Grid> 
</ControlTemplate> 

+0

我只能上传1个超链接。这是我目前有:http://i52.tinypic.com/b65vnn.jpg – PietjePoeier 2010-09-15 15:03:49

回答

0

你可以尝试在形状与Expression Design或类似的工具模型(其实我不知道是否有类似的工具存在);至少这是我想要的最简单的解决方案。如果在那里设计形状更容易,您甚至可以导入Adobe Illustrator文件。你可以直接使用XAML,包括任何复杂的形状。

注意:Expression Design是Expression Studio的一部分。

作为一个简单的例子(我刚刚加入一个圆,矩形一起),结果XAML是这样的:

<Path Width="197" Height="64.5" 
Canvas.Left="32.8333" Canvas.Top="41.6667" Stretch="Fill" 
StrokeLineJoin="Round" Stroke="#FF000000" Fill="#FFFFFFFF" 
Data="F1 M 65.0833,42.1667C 76.8868,42.1667 87.186,48.6077 92.6577,58.1667L 229.333,58.1667L 229.333,90.1667L 92.3654,90.1667C 86.8243,99.4496 76.6798,105.667 65.0833,105.667C 47.5483,105.667 33.3333,91.4517 33.3333,73.9167C 33.3333,56.3817 47.5483,42.1667 65.0833,42.1667 Z "/> 

而关于这一点,我强烈建议使用Adobe Illustrator或等效的程序和导入表达式设计中的文件;当涉及到矢量图形时,它的功能仍然很小,特别是对于习惯于AI的用户。此外,您可以将AI文件直接导入Blend。

+0

谢谢,现在我用你创建的路径来接受我需要的结果。我将很快考虑Expression Studio方法。谢谢你的建议。 – PietjePoeier 2010-09-16 18:31:38