Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何设置;高度“;或;宽度“;在.net核心WPF项目的XAML中创建图像_C#_Wpf_.net Core_Height_Bitmapimage - Fatal编程技术网

C# 如何设置;高度“;或;宽度“;在.net核心WPF项目的XAML中创建图像

C# 如何设置;高度“;或;宽度“;在.net核心WPF项目的XAML中创建图像,c#,wpf,.net-core,height,bitmapimage,C#,Wpf,.net Core,Height,Bitmapimage,我正在使用AvalonDock(作为对接解决方案),它的“AvalonDock:LayoutAchorable.IconSource”属性需要一个ImageSource 我有以下代码: <avalonDock:LayoutRoot.LeftSide> <avalonDock:LayoutAnchorSide> <avalonDock:LayoutAnchorGroup>

我正在使用AvalonDock(作为对接解决方案),它的“AvalonDock:LayoutAchorable.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的固定高度


注意:在.net core中,听起来我们应该使用BitmapImage,它在xaml中没有可用的“高度”(或“宽度”)属性。

我发现的最简单的方法是将图标放置在网格中,然后可以调整网格的大小来更改图像的大小

例如:

 <Grid Grid.Row="1" Grid.Column="1">
            <Grid.RowDefinitions>
                <RowDefinition Height="25"/>
                <RowDefinition Height="5"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            
            <TextBlock Grid.Row="0" Name="TitleTextBlock" Text="Budgets" FontWeight="Bold"/>
            <Image Grid.Row="0" Name="SettingsImage" HorizontalAlignment="Right"></Image>
</Grid>

你能告诉我nuget软件包已经安装了吗?对于Avalondock,我没有软件包,我的机器上有源代码,我将项目添加到我的机器上。你的答案在哪里?我想知道我的源代码是否不好???我已经删除了一段时间,我会想出一个更好的。非常感谢大卫。我认为应该有另一种更简单的方法。要么它已经存在,我们只是还没有找到它,要么它将很快与.NET5(RC刚刚发布的地方)一起出现。
var icon = new PackIconFontAwesome() {Kind = PackIconFontAwesomeKind.AsteriskSolid};
Geometry geo = Geometry.Parse(icon.Data);
GeometryDrawing gd = new GeometryDrawing();
gd.Geometry = geo;
gd.Brush = icon.BorderBrush;
gd.Pen = new Pen(Brushes.White, 8);
DrawingImage geoImage = new DrawingImage(gd);
geoImage.Freeze();

SettingsImage.Source = geoImage;