How to change C# wpf background image when opening a new window?











up vote
-1
down vote

favorite












My MainWindow has 4 radio buttons. The user has to choose one, then press on a button that opens up a new window. Depending on the radio button selected, I want to change the background that appears in the new window. This is my code:



public partial class Practice : Window
{
public Practice()
{
InitializeComponent();

if (((MainWindow)Application.Current.MainWindow).BinomialRadio.IsChecked == true)
{

}
else if (((MainWindow)Application.Current.MainWindow).HypergeometricRadio.IsChecked == true)
{

}
else if (((MainWindow)Application.Current.MainWindow).PoissonRadio.IsChecked == true)
{
Background = new ImageBrush(new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), "images/poisson_practice_screen.jpg")));
}
else
{

}
}
}


The new window already has a default background that I set in the properties of the XAML code. This code above runs and executes well, but the picture does not change. I found a quick fix, which is basically to remove the background (so that the new window always has a blank background), and then set it every time it opens. Is there any better way to do this?



Thank you to everyone for their help










share|improve this question
























  • Please do not link to screenshots of code, and instead paste the code directly into the question and format it using the rich text editor. That will make it much easier to answer your question :)
    – laptou
    Nov 22 at 0:01










  • Additionally, this is probably not the kind of thing you want to be doing in your codebehind file. Has anyone ever told you about data binding?
    – laptou
    Nov 22 at 0:02












  • @Iaptou Ok, I'll put my code directly into the question; sorry about that! And no, I don't know what data binding is. Is the fastest way to do this just to have a blank window and set it every time?
    – MichaelReese's
    Nov 22 at 0:09















up vote
-1
down vote

favorite












My MainWindow has 4 radio buttons. The user has to choose one, then press on a button that opens up a new window. Depending on the radio button selected, I want to change the background that appears in the new window. This is my code:



public partial class Practice : Window
{
public Practice()
{
InitializeComponent();

if (((MainWindow)Application.Current.MainWindow).BinomialRadio.IsChecked == true)
{

}
else if (((MainWindow)Application.Current.MainWindow).HypergeometricRadio.IsChecked == true)
{

}
else if (((MainWindow)Application.Current.MainWindow).PoissonRadio.IsChecked == true)
{
Background = new ImageBrush(new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), "images/poisson_practice_screen.jpg")));
}
else
{

}
}
}


The new window already has a default background that I set in the properties of the XAML code. This code above runs and executes well, but the picture does not change. I found a quick fix, which is basically to remove the background (so that the new window always has a blank background), and then set it every time it opens. Is there any better way to do this?



Thank you to everyone for their help










share|improve this question
























  • Please do not link to screenshots of code, and instead paste the code directly into the question and format it using the rich text editor. That will make it much easier to answer your question :)
    – laptou
    Nov 22 at 0:01










  • Additionally, this is probably not the kind of thing you want to be doing in your codebehind file. Has anyone ever told you about data binding?
    – laptou
    Nov 22 at 0:02












  • @Iaptou Ok, I'll put my code directly into the question; sorry about that! And no, I don't know what data binding is. Is the fastest way to do this just to have a blank window and set it every time?
    – MichaelReese's
    Nov 22 at 0:09













up vote
-1
down vote

favorite









up vote
-1
down vote

favorite











My MainWindow has 4 radio buttons. The user has to choose one, then press on a button that opens up a new window. Depending on the radio button selected, I want to change the background that appears in the new window. This is my code:



public partial class Practice : Window
{
public Practice()
{
InitializeComponent();

if (((MainWindow)Application.Current.MainWindow).BinomialRadio.IsChecked == true)
{

}
else if (((MainWindow)Application.Current.MainWindow).HypergeometricRadio.IsChecked == true)
{

}
else if (((MainWindow)Application.Current.MainWindow).PoissonRadio.IsChecked == true)
{
Background = new ImageBrush(new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), "images/poisson_practice_screen.jpg")));
}
else
{

}
}
}


The new window already has a default background that I set in the properties of the XAML code. This code above runs and executes well, but the picture does not change. I found a quick fix, which is basically to remove the background (so that the new window always has a blank background), and then set it every time it opens. Is there any better way to do this?



Thank you to everyone for their help










share|improve this question















My MainWindow has 4 radio buttons. The user has to choose one, then press on a button that opens up a new window. Depending on the radio button selected, I want to change the background that appears in the new window. This is my code:



public partial class Practice : Window
{
public Practice()
{
InitializeComponent();

if (((MainWindow)Application.Current.MainWindow).BinomialRadio.IsChecked == true)
{

}
else if (((MainWindow)Application.Current.MainWindow).HypergeometricRadio.IsChecked == true)
{

}
else if (((MainWindow)Application.Current.MainWindow).PoissonRadio.IsChecked == true)
{
Background = new ImageBrush(new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), "images/poisson_practice_screen.jpg")));
}
else
{

}
}
}


The new window already has a default background that I set in the properties of the XAML code. This code above runs and executes well, but the picture does not change. I found a quick fix, which is basically to remove the background (so that the new window always has a blank background), and then set it every time it opens. Is there any better way to do this?



Thank you to everyone for their help







c# wpf image background window






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 22 at 0:11

























asked Nov 21 at 23:56









MichaelReese's

133




133












  • Please do not link to screenshots of code, and instead paste the code directly into the question and format it using the rich text editor. That will make it much easier to answer your question :)
    – laptou
    Nov 22 at 0:01










  • Additionally, this is probably not the kind of thing you want to be doing in your codebehind file. Has anyone ever told you about data binding?
    – laptou
    Nov 22 at 0:02












  • @Iaptou Ok, I'll put my code directly into the question; sorry about that! And no, I don't know what data binding is. Is the fastest way to do this just to have a blank window and set it every time?
    – MichaelReese's
    Nov 22 at 0:09


















  • Please do not link to screenshots of code, and instead paste the code directly into the question and format it using the rich text editor. That will make it much easier to answer your question :)
    – laptou
    Nov 22 at 0:01










  • Additionally, this is probably not the kind of thing you want to be doing in your codebehind file. Has anyone ever told you about data binding?
    – laptou
    Nov 22 at 0:02












  • @Iaptou Ok, I'll put my code directly into the question; sorry about that! And no, I don't know what data binding is. Is the fastest way to do this just to have a blank window and set it every time?
    – MichaelReese's
    Nov 22 at 0:09
















Please do not link to screenshots of code, and instead paste the code directly into the question and format it using the rich text editor. That will make it much easier to answer your question :)
– laptou
Nov 22 at 0:01




Please do not link to screenshots of code, and instead paste the code directly into the question and format it using the rich text editor. That will make it much easier to answer your question :)
– laptou
Nov 22 at 0:01












Additionally, this is probably not the kind of thing you want to be doing in your codebehind file. Has anyone ever told you about data binding?
– laptou
Nov 22 at 0:02






Additionally, this is probably not the kind of thing you want to be doing in your codebehind file. Has anyone ever told you about data binding?
– laptou
Nov 22 at 0:02














@Iaptou Ok, I'll put my code directly into the question; sorry about that! And no, I don't know what data binding is. Is the fastest way to do this just to have a blank window and set it every time?
– MichaelReese's
Nov 22 at 0:09




@Iaptou Ok, I'll put my code directly into the question; sorry about that! And no, I don't know what data binding is. Is the fastest way to do this just to have a blank window and set it every time?
– MichaelReese's
Nov 22 at 0:09












1 Answer
1






active

oldest

votes

















up vote
0
down vote



accepted










The reason that the background of the Practice window does not update is because you set its background in the constructor of the window, which only runs when the window is created. In order for it to update, you have to add event handlers on each of the checkboxes for the Checked event and update the background in the handler.



However, the easiest and most recommended way to do this is using data binding. Data binding is a construct in WPF and other frameworks where you declaratively indicate which properties are linked together, so that you don't have to update them manually. No writing tedious event event handlers or keeping track of complicated changes.



Practice.xaml.cs:



public partial class Practice : Window
{
// INotifyPropertyChanged implementation is important!
// Without it, WPF has no way of knowing that you changed your property...
public class PracticeModel : INotifyPropertyChanged
{
private BitmapImage _background;

public BitmapImage Background
{
get => _background;
set { _background = value; PropertyChanged?.Invoke(nameof(Background)); }
}

public event PropertyChangedEventHandler PropertyChanged;
}

public Practice()
{
InitializeComponent();

// DataContext specifies which object the bindings are bound to
this.DataContext = new PracticeModel();
}
}


Practice.xaml:



<Window x:Class="MyApp.Practice" Background="{Binding Background}">
<!-- your content here; all other attributes of Window omitted for brevity -->
</Window>


MainWindow.xaml.cs:



public partial class MainWindow : Window
{
public Practice.PracticeModel PracticeModel { get; set; } = new Practice.PracticeModel();

// ...

public OnButtonClicked(RoutedEventArgs e)
{
var window = new Practice();
// DataContext specifies which object the bindings are bound to
window.DataContext = this.PracticeModel;
window.Show();
}

public OnPoissonRadioChecked(RoutedEventArgs e)
{
PracticeModel.Background = new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), "images/poisson_practice_screen.jpg"));
}

// likewise for other radio buttons ...
}


MainWindow.xaml:



<Window x:Class="MyApp.MainWindow">
<RadioButton Group="TheButtons" x:Name="BinomialRadio" IsChecked="True" Checked="OnBinomialRadioChecked" />
<RadioButton Group="TheButtons" x:Name="HypergeometricRadio" Checked="OnHypergeometricRadioChecked" />
<RadioButton Group="TheButtons" x:Name="PoissonRadio" Checked="OnPoissonRadioChecked" />
<RadioButton Group="TheButtons" x:Name="TheOtherRadio" Checked="OnTheOtherRadioChecked" />
</Window>


When you change the property on PracticeModel, the PropertyChanged event is fired. This tells WPF that the property has changed, and it automatically updates all of the relevant bindings. This will quickly become very useful when you want to have more than one dynamically updating property. Additionally, data binding can automatically convert from a string or a Uri to an ImageSource, so you might not even need to create the BitmapImage yourself (and if you don't have to, then don't.)



As you might have noticed, there are still event handlers in this code. That's because I didn't want to introduce too much complexity at the same time, and data-binding radio buttons properly can be kind of confusing for someone who is not accustomed to this. I hope this helps!






share|improve this answer





















  • Thanks for the answer! Everything worked :) I'm pretty sure I understand what's happening, too
    – MichaelReese's
    Nov 22 at 1:55











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53422100%2fhow-to-change-c-sharp-wpf-background-image-when-opening-a-new-window%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
0
down vote



accepted










The reason that the background of the Practice window does not update is because you set its background in the constructor of the window, which only runs when the window is created. In order for it to update, you have to add event handlers on each of the checkboxes for the Checked event and update the background in the handler.



However, the easiest and most recommended way to do this is using data binding. Data binding is a construct in WPF and other frameworks where you declaratively indicate which properties are linked together, so that you don't have to update them manually. No writing tedious event event handlers or keeping track of complicated changes.



Practice.xaml.cs:



public partial class Practice : Window
{
// INotifyPropertyChanged implementation is important!
// Without it, WPF has no way of knowing that you changed your property...
public class PracticeModel : INotifyPropertyChanged
{
private BitmapImage _background;

public BitmapImage Background
{
get => _background;
set { _background = value; PropertyChanged?.Invoke(nameof(Background)); }
}

public event PropertyChangedEventHandler PropertyChanged;
}

public Practice()
{
InitializeComponent();

// DataContext specifies which object the bindings are bound to
this.DataContext = new PracticeModel();
}
}


Practice.xaml:



<Window x:Class="MyApp.Practice" Background="{Binding Background}">
<!-- your content here; all other attributes of Window omitted for brevity -->
</Window>


MainWindow.xaml.cs:



public partial class MainWindow : Window
{
public Practice.PracticeModel PracticeModel { get; set; } = new Practice.PracticeModel();

// ...

public OnButtonClicked(RoutedEventArgs e)
{
var window = new Practice();
// DataContext specifies which object the bindings are bound to
window.DataContext = this.PracticeModel;
window.Show();
}

public OnPoissonRadioChecked(RoutedEventArgs e)
{
PracticeModel.Background = new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), "images/poisson_practice_screen.jpg"));
}

// likewise for other radio buttons ...
}


MainWindow.xaml:



<Window x:Class="MyApp.MainWindow">
<RadioButton Group="TheButtons" x:Name="BinomialRadio" IsChecked="True" Checked="OnBinomialRadioChecked" />
<RadioButton Group="TheButtons" x:Name="HypergeometricRadio" Checked="OnHypergeometricRadioChecked" />
<RadioButton Group="TheButtons" x:Name="PoissonRadio" Checked="OnPoissonRadioChecked" />
<RadioButton Group="TheButtons" x:Name="TheOtherRadio" Checked="OnTheOtherRadioChecked" />
</Window>


When you change the property on PracticeModel, the PropertyChanged event is fired. This tells WPF that the property has changed, and it automatically updates all of the relevant bindings. This will quickly become very useful when you want to have more than one dynamically updating property. Additionally, data binding can automatically convert from a string or a Uri to an ImageSource, so you might not even need to create the BitmapImage yourself (and if you don't have to, then don't.)



As you might have noticed, there are still event handlers in this code. That's because I didn't want to introduce too much complexity at the same time, and data-binding radio buttons properly can be kind of confusing for someone who is not accustomed to this. I hope this helps!






share|improve this answer





















  • Thanks for the answer! Everything worked :) I'm pretty sure I understand what's happening, too
    – MichaelReese's
    Nov 22 at 1:55















up vote
0
down vote



accepted










The reason that the background of the Practice window does not update is because you set its background in the constructor of the window, which only runs when the window is created. In order for it to update, you have to add event handlers on each of the checkboxes for the Checked event and update the background in the handler.



However, the easiest and most recommended way to do this is using data binding. Data binding is a construct in WPF and other frameworks where you declaratively indicate which properties are linked together, so that you don't have to update them manually. No writing tedious event event handlers or keeping track of complicated changes.



Practice.xaml.cs:



public partial class Practice : Window
{
// INotifyPropertyChanged implementation is important!
// Without it, WPF has no way of knowing that you changed your property...
public class PracticeModel : INotifyPropertyChanged
{
private BitmapImage _background;

public BitmapImage Background
{
get => _background;
set { _background = value; PropertyChanged?.Invoke(nameof(Background)); }
}

public event PropertyChangedEventHandler PropertyChanged;
}

public Practice()
{
InitializeComponent();

// DataContext specifies which object the bindings are bound to
this.DataContext = new PracticeModel();
}
}


Practice.xaml:



<Window x:Class="MyApp.Practice" Background="{Binding Background}">
<!-- your content here; all other attributes of Window omitted for brevity -->
</Window>


MainWindow.xaml.cs:



public partial class MainWindow : Window
{
public Practice.PracticeModel PracticeModel { get; set; } = new Practice.PracticeModel();

// ...

public OnButtonClicked(RoutedEventArgs e)
{
var window = new Practice();
// DataContext specifies which object the bindings are bound to
window.DataContext = this.PracticeModel;
window.Show();
}

public OnPoissonRadioChecked(RoutedEventArgs e)
{
PracticeModel.Background = new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), "images/poisson_practice_screen.jpg"));
}

// likewise for other radio buttons ...
}


MainWindow.xaml:



<Window x:Class="MyApp.MainWindow">
<RadioButton Group="TheButtons" x:Name="BinomialRadio" IsChecked="True" Checked="OnBinomialRadioChecked" />
<RadioButton Group="TheButtons" x:Name="HypergeometricRadio" Checked="OnHypergeometricRadioChecked" />
<RadioButton Group="TheButtons" x:Name="PoissonRadio" Checked="OnPoissonRadioChecked" />
<RadioButton Group="TheButtons" x:Name="TheOtherRadio" Checked="OnTheOtherRadioChecked" />
</Window>


When you change the property on PracticeModel, the PropertyChanged event is fired. This tells WPF that the property has changed, and it automatically updates all of the relevant bindings. This will quickly become very useful when you want to have more than one dynamically updating property. Additionally, data binding can automatically convert from a string or a Uri to an ImageSource, so you might not even need to create the BitmapImage yourself (and if you don't have to, then don't.)



As you might have noticed, there are still event handlers in this code. That's because I didn't want to introduce too much complexity at the same time, and data-binding radio buttons properly can be kind of confusing for someone who is not accustomed to this. I hope this helps!






share|improve this answer





















  • Thanks for the answer! Everything worked :) I'm pretty sure I understand what's happening, too
    – MichaelReese's
    Nov 22 at 1:55













up vote
0
down vote



accepted







up vote
0
down vote



accepted






The reason that the background of the Practice window does not update is because you set its background in the constructor of the window, which only runs when the window is created. In order for it to update, you have to add event handlers on each of the checkboxes for the Checked event and update the background in the handler.



However, the easiest and most recommended way to do this is using data binding. Data binding is a construct in WPF and other frameworks where you declaratively indicate which properties are linked together, so that you don't have to update them manually. No writing tedious event event handlers or keeping track of complicated changes.



Practice.xaml.cs:



public partial class Practice : Window
{
// INotifyPropertyChanged implementation is important!
// Without it, WPF has no way of knowing that you changed your property...
public class PracticeModel : INotifyPropertyChanged
{
private BitmapImage _background;

public BitmapImage Background
{
get => _background;
set { _background = value; PropertyChanged?.Invoke(nameof(Background)); }
}

public event PropertyChangedEventHandler PropertyChanged;
}

public Practice()
{
InitializeComponent();

// DataContext specifies which object the bindings are bound to
this.DataContext = new PracticeModel();
}
}


Practice.xaml:



<Window x:Class="MyApp.Practice" Background="{Binding Background}">
<!-- your content here; all other attributes of Window omitted for brevity -->
</Window>


MainWindow.xaml.cs:



public partial class MainWindow : Window
{
public Practice.PracticeModel PracticeModel { get; set; } = new Practice.PracticeModel();

// ...

public OnButtonClicked(RoutedEventArgs e)
{
var window = new Practice();
// DataContext specifies which object the bindings are bound to
window.DataContext = this.PracticeModel;
window.Show();
}

public OnPoissonRadioChecked(RoutedEventArgs e)
{
PracticeModel.Background = new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), "images/poisson_practice_screen.jpg"));
}

// likewise for other radio buttons ...
}


MainWindow.xaml:



<Window x:Class="MyApp.MainWindow">
<RadioButton Group="TheButtons" x:Name="BinomialRadio" IsChecked="True" Checked="OnBinomialRadioChecked" />
<RadioButton Group="TheButtons" x:Name="HypergeometricRadio" Checked="OnHypergeometricRadioChecked" />
<RadioButton Group="TheButtons" x:Name="PoissonRadio" Checked="OnPoissonRadioChecked" />
<RadioButton Group="TheButtons" x:Name="TheOtherRadio" Checked="OnTheOtherRadioChecked" />
</Window>


When you change the property on PracticeModel, the PropertyChanged event is fired. This tells WPF that the property has changed, and it automatically updates all of the relevant bindings. This will quickly become very useful when you want to have more than one dynamically updating property. Additionally, data binding can automatically convert from a string or a Uri to an ImageSource, so you might not even need to create the BitmapImage yourself (and if you don't have to, then don't.)



As you might have noticed, there are still event handlers in this code. That's because I didn't want to introduce too much complexity at the same time, and data-binding radio buttons properly can be kind of confusing for someone who is not accustomed to this. I hope this helps!






share|improve this answer












The reason that the background of the Practice window does not update is because you set its background in the constructor of the window, which only runs when the window is created. In order for it to update, you have to add event handlers on each of the checkboxes for the Checked event and update the background in the handler.



However, the easiest and most recommended way to do this is using data binding. Data binding is a construct in WPF and other frameworks where you declaratively indicate which properties are linked together, so that you don't have to update them manually. No writing tedious event event handlers or keeping track of complicated changes.



Practice.xaml.cs:



public partial class Practice : Window
{
// INotifyPropertyChanged implementation is important!
// Without it, WPF has no way of knowing that you changed your property...
public class PracticeModel : INotifyPropertyChanged
{
private BitmapImage _background;

public BitmapImage Background
{
get => _background;
set { _background = value; PropertyChanged?.Invoke(nameof(Background)); }
}

public event PropertyChangedEventHandler PropertyChanged;
}

public Practice()
{
InitializeComponent();

// DataContext specifies which object the bindings are bound to
this.DataContext = new PracticeModel();
}
}


Practice.xaml:



<Window x:Class="MyApp.Practice" Background="{Binding Background}">
<!-- your content here; all other attributes of Window omitted for brevity -->
</Window>


MainWindow.xaml.cs:



public partial class MainWindow : Window
{
public Practice.PracticeModel PracticeModel { get; set; } = new Practice.PracticeModel();

// ...

public OnButtonClicked(RoutedEventArgs e)
{
var window = new Practice();
// DataContext specifies which object the bindings are bound to
window.DataContext = this.PracticeModel;
window.Show();
}

public OnPoissonRadioChecked(RoutedEventArgs e)
{
PracticeModel.Background = new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), "images/poisson_practice_screen.jpg"));
}

// likewise for other radio buttons ...
}


MainWindow.xaml:



<Window x:Class="MyApp.MainWindow">
<RadioButton Group="TheButtons" x:Name="BinomialRadio" IsChecked="True" Checked="OnBinomialRadioChecked" />
<RadioButton Group="TheButtons" x:Name="HypergeometricRadio" Checked="OnHypergeometricRadioChecked" />
<RadioButton Group="TheButtons" x:Name="PoissonRadio" Checked="OnPoissonRadioChecked" />
<RadioButton Group="TheButtons" x:Name="TheOtherRadio" Checked="OnTheOtherRadioChecked" />
</Window>


When you change the property on PracticeModel, the PropertyChanged event is fired. This tells WPF that the property has changed, and it automatically updates all of the relevant bindings. This will quickly become very useful when you want to have more than one dynamically updating property. Additionally, data binding can automatically convert from a string or a Uri to an ImageSource, so you might not even need to create the BitmapImage yourself (and if you don't have to, then don't.)



As you might have noticed, there are still event handlers in this code. That's because I didn't want to introduce too much complexity at the same time, and data-binding radio buttons properly can be kind of confusing for someone who is not accustomed to this. I hope this helps!







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 22 at 1:30









laptou

1,634821




1,634821












  • Thanks for the answer! Everything worked :) I'm pretty sure I understand what's happening, too
    – MichaelReese's
    Nov 22 at 1:55


















  • Thanks for the answer! Everything worked :) I'm pretty sure I understand what's happening, too
    – MichaelReese's
    Nov 22 at 1:55
















Thanks for the answer! Everything worked :) I'm pretty sure I understand what's happening, too
– MichaelReese's
Nov 22 at 1:55




Thanks for the answer! Everything worked :) I'm pretty sure I understand what's happening, too
– MichaelReese's
Nov 22 at 1:55


















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53422100%2fhow-to-change-c-sharp-wpf-background-image-when-opening-a-new-window%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

What visual should I use to simply compare current year value vs last year in Power BI desktop

Alexandru Averescu

Trompette piccolo