XAML设计器不显示自定义窗口

时间:2016-03-05 02:04:01

标签: c# wpf xaml visual-studio-2015

我有一个从自定义窗口继承的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>

设计

Designer

预期结果:

Expected result

1 个答案:

答案 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>