私はこれを_Main.xaml
_にResourceDictionary
持っています:
_<Window.Resources>
<ResourceDictionary>
<BitmapImage x:Key="Customer" UriSource="Icons/customer.png"/>
<BitmapImage x:Key="Project" UriSource="Icons/project.png"/>
<BitmapImage x:Key="Task" UriSource="Icons/task.png"/>
</ResourceDictionary>
</Window.Resources>
_
私は最初に画像を設定しました:
_<Image Name="TypeIcon" HorizontalAlignment="Left" VerticalAlignment="Center"
Source="{StaticResource Customer}" Height="16" Width="16"/>
_
C#メソッドでTypeIcon
のSource
をCustomerからProjectに変更しようとしています。
私は使ってみました:
_TypeIcon.Source = "{StaticResource Project}";
_
しかし、私はこのエラーを受け取ります:
暗黙的に型
string
を_System.Windows.Media.ImageSource
_に変換できません
new ImageSource()
を使用してイメージを定義しようとしましたが、これも機能しません。
C#でプログラムによってイメージのSource
を変更するにはどうすればよいですか?
多くのグーグル操作の後、この質問を書いている間に、私はそれを行う方法を理解しました:
TypeIcon.Source = (ImageSource) Resources["Project"];
静的リソース用ではありませんが、とにかく役に立つでしょう... :)
つまり、グリッドの背景を動的に設定する方法
var myBrush = new ImageBrush();
var image = new Image
{
Source = new BitmapImage(
new Uri(
"pack://application:,,,/YourAppName;component/Images/Boo.png"))
};
myBrush.ImageSource = image.Source;
MainGrid.Background = myBrush;
つまり、アプリのアイコンを動的に設定する方法
var idleIco = new Image
{
Source = new BitmapImage(
new Uri(
"pack://application:,,,/YourAppName;component/Images/idle.ico"))
};
SomeObjectYouAreUsingToSet.IconSource =idleIco.Source;
ImageSourceConverter
クラスを使用して、必要なものを取得できます。次に例を示します。
img1.Source = (ImageSource)new ImageSourceConverter().ConvertFromString("/Assets/check.png");