在后面的代码中我们设置了窗口背景的图像路径,有没有办法在xaml上获取这个值并用它来设置背景图像
问问题
3732 次
2 回答
2
虽然我没有显示背景图像,但以下绑定仍然对您的情况有效:
XAML
<TextBox DataContext="{Binding RelativeSource={RelativeSource AncestorLevel=1,AncestorType=Window}}"
Text="{Binding MyProperty}" Width="200" Height="50"/>
C#
public partial class MainWindow : Window
{
public string MyProperty { get; set; }
public MainWindow()
{
InitializeComponent();
MyProperty = "Sample";
}
}
希望这对您有所帮助!
于 2012-06-28T07:07:57.730 回答
2
在最好的情况下,后面的代码是空的,或者只是 InitializeComponent 在那里。
因此,我将重点介绍一种实现方式,让未来的变化变得非常容易!
您可以轻松地为您的 Window 设置 DataContext(例如在代码隐藏中)。
从这个 DataContext (当这个路径改变时它应该实现 INotifyPropertyChanged )你可以很容易地绑定到你想要的任何东西。
这是一个小例子:
// ViewModel class containing ImagePath
public class WindowBackgroundViewModel : INotifyPropertyChanged
{
public string ImagePath { get; set; }
}
// in Codebehind
public WindowBackgroundViewModel ViewModel { get; set; }
// in Constructor
public myWindow()
{
this.ViewModel = new WindowBackgroundViewModel();
this.ViewModel.ImagePath = @"C:\myBackground.png";
this.DataContext = this.ViewModel;
}
// in XAML
<... ImageBackground="{Binding Path=ImagePath}"
于 2012-06-28T07:10:18.840 回答