Как программно установить Источник изображения в C# на статический ресурс XAML?
у меня есть это ResourceDictionary
на Main.xaml
:
<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"/>
Я пытаюсь изменить TypeIcon
' s Source
С клиент to проект в C# метод.
Я пробовал использовать:
TypeIcon.Source = "{StaticResource Project}";
но я получаю эту ошибку:
не удается неявно преобразовать тип
string
toSystem.Windows.Media.ImageSource
Я попытался определить изображение, используя new ImageSource()
, но это тоже не работает.
как я могу изменить изображения Source
программно в C#?
3 ответов
после долгого гугления, во время написания этого вопроса, я понял, как это сделать:
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");