我有一个从自定义窗口继承的WPF窗口。它运行正常,但VS设计师将其显示为默认的空窗口。
自定义窗口代码:
using System.Windows;
using System.Windows.Media;
namespace WpfApplication2
{
public class CustomWindow : Window
{
public CustomWindow()
{
Background = new SolidColorBrush(Colors.Red);
}
}
}
MainWindow.xaml
:
<local:CustomWindow x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication2"
Title="MainWindow" Height="350" Width="525">
</local:CustomWindow>
设计
预期结果:
答案 0 :(得分:-1)
Visual Studio和Blend中的XAML设计器并不一定尊重直接在代码中设置的任何依赖项属性(特别是在构造函数中),而是期望仅在XAML中设置那些,这是规范的在设计时使用依赖系统的方法。当然,如果需要,可以在代码中设置所有内容,但是在使用XAML设计器时,您无法保证在正在运行的应用程序中看到的相同行为。 此外,如果您在代码中设置依赖项属性,那么您需要非常小心如何设置它们,因为您可能会破坏可能最终在这些属性上设置的任何绑定。
无论如何,获得所需结果的更好方法是在XAML中设置这样的颜色
<local:CustomWindow x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication2"
Title="MainWindow" Height="350" Width="525" Background="Red">
</local:CustomWindow>