我想在Mac或ObjectBar上模仿DockBar。在此过程中,我希望学习WPF自定义控件,并希望为我和社区创建一个可用的控件。到目前为止我有这个
<Window x:Class="WPFMacStyleTBar.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="356" Width="577">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid Grid.Row="3">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Button Grid.Column="1" x:Name="btnHome" Background="Transparent" BorderBrush="Transparent" Margin="0,0,47,0" Foreground="Transparent">
<Button.Content>
<Image Source="C:\Vikram\Projects\WPFMacStyleTBar\WPFMacStyleTBar\Images\Home.png"></Image>
</Button.Content>
</Button>
<Button Grid.Column="2" x:Name="btnGlobe" Background="Transparent" BorderBrush="Transparent" Margin="0,0,47,0" Foreground="Transparent">
<Button.Content>
<Image Source="C:\Vikram\Projects\WPFMacStyleTBar\WPFMacStyleTBar\Images\Globe.png"></Image>
</Button.Content>
</Button>
<Button Grid.Column="3" x:Name="btnNotes" Background="Transparent" BorderBrush="Transparent" Margin="0,0,49,0" Foreground="Transparent">
<Button.Content>
<Image Source="C:\Vikram\Projects\WPFMacStyleTBar\WPFMacStyleTBar\Images\Notes.png"></Image>
</Button.Content>
</Button>
</Grid>
</Grid>
这有点简陋,但我觉得对于初学者来说应该没问题。我面临的问题是,即使将背景和边框设置为“透明”,按钮边框仍会显示。在它的顶部,我想按钮区域裁剪为图像的区域。对于如何做到这一点,我将不胜感激。
修改
我找到了我要找的here
答案 0 :(得分:0)
我认为一个包装面板(http://msdn.microsoft.com/en-us/library/system.windows.controls.wrappanel.aspx)将是一个更明智的选择,而不仅仅是限制用户能够使用的按钮设置。
此外,您还可以为按钮创建样式,并将按钮大小绑定到图像的大小(在代码隐藏中实现检查以设置最大图像大小)。
至于非透明的按钮边框,我真的不知道为什么会这样。如果可能,发布截图;)