在我正在处理的应用程序中,有一些图像(部分System.Windows.Media.Imaging)是在XAML页面的代码隐藏中动态创建的,并且被添加到窗口中.我正在使用包含各种大小和位深度的ICO文件.我想要的大小是96x96 @ 32位.代码自动选择最大的大小(256x256 @ 32位).
我正在设置Image.Source属性如下:
image.Source = new BitmapImage(new Uri("pack://application:,,,/Resources/Images/Application.ico"));
Run Code Online (Sandbox Code Playgroud)
现在,通过搜索我发现了Icon(部分System.Drawing),它将允许我设置字符串路径和大小,但这是一个完全不同的库的一部分.
new Icon("pack://application:,,,/Resources/Images/Inquiry.ico",96,96);
Run Code Online (Sandbox Code Playgroud)
知道如何让我的Image尺寸属性更易于管理吗?谢谢!
编辑:
将System.Drawing.Icon转换为System.Media.ImageSource
这篇文章让图像看起来更小,但是,如果我将Icon设置为96x96或128x128并不重要,它实际上并没有改变显示图像的大小.我假设它的默认值与默认值不同System.Windows.Media.Imaging.
编辑到编辑:怪异不断变得更奇怪.当我通过原始方法显示时,它肯定会将图像显示为256x256.但是,当我使用链接中描述的转换方法时,虽然大小发生变化,但它们会大幅缩小(即256x256看起来更接近48x48).
我正在使用C#4.0开发一个项目.我有几个presenter类,它们都继承自同一个基类.这些演示者类中的每一个都有一个"当前"对象,该对象特定于每个演示者,但它们都有一个共同的继承类,当然与演示者分开.
在可怕的伪代码中:
class ApplicationPresenter inherits BasePresenter
Pubilc PersonApplication Current (inherited from Person)
class RecordPresenter inherits BasePresenter
Public PersonRecord Current (inherited from Person)
class InquiryPresenter inherits BasePresenter
Public PersonInquiry Current (inherited from Person)
Run Code Online (Sandbox Code Playgroud)
...等等
有没有办法让它可以从任何这些中调用"当前",而不需要类型检测,但是它是否与最佳实践保持一致?
我认为最好的选择就是让它成为一个动态的,因为我知道无论我传递给它的是什么,都会有"当前"并且这样做.那是对的吗?
或者有一种方法可以创建:
class BasePresenter
Public Person Current
Run Code Online (Sandbox Code Playgroud)
并适当地进行演员表演?
我知道有很多方法可以解决这个问题,但我正在寻找干净和适当的方法.
谢谢!