2015-11-03 7 views
0

Ну, я видел этот вопрос столько раз, но все ответы, предоставленные TS, не применимы к моему UserControl. = (WPF Transparent UserControl Background

Проблема заключается в том, когда я использую свойства фона на UserControl внутри конструктора, он работает только тогда, когда я установить его реальный цвет, как красный, синий, зеленый и т.д.

Однако, когда я пытаюсь установить его в прозрачный, он снова становится белым.

у меня есть окно, которое выглядит как этот
enter image description here

, что им пытаются достичь, это
enter image description here

Но им получаю это (этот whiteish фон, или на самом деле любой цвет, кроме прозрачной) enter image description here

Любые предложения о том, как сделать это возможным?

P.S. Этот пользовательский элемент управления является своего рода MessageBox

Обновление! Забыл упомянуть исходный код для этого элемента управления http://www.codeproject.com/Tips/563144/WPF-Dialog-MessageBox-Manager (по Ronald Schlenker)

public partial class LoginWindow : Window 
{ 
    public LoginWindow() 
    { 
     InitializeComponent(); 
     string languageCode = CultureInfo.CurrentCulture.TwoLetterISOLanguageName; 
     string Path = System.AppDomain.CurrentDomain.BaseDirectory.ToString(); 
     TimedCall(); 
    } 

    private void TimedCall() 
    { 
     System.Threading.Timer timer = null; 
     timer = new System.Threading.Timer((obj) => 
     { 
      ShowMessageBox(); 
      timer.Dispose(); 
     }, 
        null, 3000, System.Threading.Timeout.Infinite); 
    } 

    private void ShowMessageBox() 
    { 
     var _dialogManager = new DialogManager(this, Dispatcher); 
     _dialogManager 
     .CreateMessageDialog("Test", "I'm a dialogafsaffsfsf", DialogMode.Ok) 
     .Show(); 
    } 
} 
+0

Можете ли вы опубликовать код, отображающий отображение сообщений? – tgpdyk

+0

@tagaPdyk извините, забыли упомянуть ссылку для кода, ее в главной теме сообщение сейчас –

+0

Nope. Ваш код. Посмотрев на ссылку, как я должен проверить проблему? Но, глядя на это, вы вызываете ящик сообщений внутри конструктора вашего окна. Это может быть проблемой. – tgpdyk

ответ

1

Добавить Loaded событие на вашем окне и вызвать TimedCall() там. Ваше окно еще не загружено, поэтому фон, который вы желаете, пока не действует.

+0

gosh, большое вам спасибо, я полностью забыл о загруженном событии, havent закодирован на C# в течение очень долгого времени –