2014-02-18 2 views
1

Это мой код он показывает ошибку в BitmapImageя хочу добавить фоновое изображение к моему подгоняет окно сообщения, но я не смог получить его

CustomMessageBox messageBox = new CustomMessageBox() 
    { 
     Caption = "Congratulations", 
     Message = "you have won", 
     LeftButtonContent = "Play Again", 
     RightButtonContent = "FB Share", 
     VerticalAlignment = VerticalAlignment.Center, 
     Background = new BitmapImage(new Uri("/imaC:/Users/Rupak/Documents/Visual Studio 2012/Projects/sachin/sachin/image.png")), 
     Foreground = new SolidColorBrush(Colors.Black), 

    }; 
+0

Попробуйте использовать другие Uri ("/ image.png", UriKind.RelativeOrAbsolute) - если изображение находится в корневой папке проекта. – Romasz

+0

Показывает ошибку bitmapimage не удалось найти – zap92

+0

Я попробовал источник изображений вместо bitmapimage, пока он покажет некоторую ошибку – zap92

ответ

1

Вы делаете это неправильно, потому что CustomMessagebox.Bacground является Brush. Вы не можете поместить туда BitmapImage, ImageSource и другие.

Это будет точно работать, если вы положили:

Background = new SolidColorBrush(Colors.Red), 

На самом деле существует в Windows Phone что-то вроде ImageBrush но, как я проверить его не будет работать с этим легко с CustomMessageBox:

ImageBrush mybrush = new ImageBrush() {ImageSource = new BitmapImage(new Uri("/Resources/firstImage.png", UriKind.Relative)) }; 

Он не будет работать, потому что в WPToolkit исходном коде есть что-то вроде этого (License to code):

// (c) Copyright Microsoft Corporation. 
// This source is subject to the Microsoft Public License (Ms-PL). 
// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. 
// All other rights reserved. 

// Insert the overlay. 
Rectangle overlay = new Rectangle(); 
Color backgroundColor = (Color)Application.Current.Resources["PhoneBackgroundColor"]; 
overlay.Fill = new SolidColorBrush(Color.FromArgb(0x99, backgroundColor.R, backgroundColor.G, backgroundColor.B)); 
_container = new Grid(); 
_container.Children.Add(overlay); 

Как вы можете видеть, Grid наложен на Rectangle, который заполнен SolidColorBrush, а не Brush (ImageBrush), который вы установили.

+0

Да, он работает, когда я использую Background = new SolidColorBrush (Colors.Red). Но можете ли вы рассказать мне, как использовать фоновое изображение в окне сообщения. – zap92

+0

Я отредактировал ответ и добавил, почему это невозможно. – Romasz

Смежные вопросы