我正在使用AvalonDock(作为Docking解决方案),并且期望其“ avalonDock:LayoutAnchorable.IconSource”属性具有ImageSource。
我有此代码:
<avalonDock:LayoutRoot.LeftSide>
<avalonDock:LayoutAnchorSide>
<avalonDock:LayoutAnchorGroup>
<!--IconSource="pack://application:,,,/PtdcGui;component/Assets/Image/Scope.png"-->
<avalonDock:LayoutAnchorable
Title="AutoHide1 Content"
ContentId="AutoHide1Content">
<avalonDock:LayoutAnchorable.IconSource>
<BitmapImage DecodePixelHeight="20"
UriSource="pack://application:,,,/PtdcGui;component/Assets/Image/Scope.png">
</BitmapImage>
</avalonDock:LayoutAnchorable.IconSource>
<TextBox Text="{Binding TestTimer, Mode=OneWay, StringFormat='AutoHide Attached to Timer ->\{0\}'}" />
</avalonDock:LayoutAnchorable>
<avalonDock:LayoutAnchorable Title="AutoHide2 Content" ContentId="AutoHide2Content">
<StackPanel Orientation="Vertical">
<TextBox />
<TextBox />
</StackPanel>
</avalonDock:LayoutAnchorable>
</avalonDock:LayoutAnchorGroup>
</avalonDock:LayoutAnchorSide>
</avalonDock:LayoutRoot.LeftSide>
20像素高的图标出现在屏幕上,高度约为32像素:
如何将图标的大小调整为固定高度20?
注意:在.net核心中,听起来我们应该使用BitmapIcon,它在xaml中没有可用的“高度”(或“宽度”)属性。
您可以使用图像控件,并且可以在内部图像源中设置BitMapImage控件。此Image控件具有高度和宽度,使用此控件可以控制图像的高度和宽度。
<avalonDock:LayoutAnchorable.IconSource>
<Image x:Name="img" Height="20" Width="25">
<Image.Source>
<BitmapImage DecodePixelHeight="20"
UriSource="pack://application:,,,/PtdcGui;component/Assets/Image/Scope.png">
</BitmapImage>
</Image.Source>
</Image>
</avalonDock:LayoutAnchorable.IconSource>
希望这会有所帮助!