c# - 无法在设计器中创建实例 "[user control]"错误

标签 c# wpf xaml user-controls compiler-errors

我创建了以下用户控件。当我将它添加到 xaml 窗口时,出现错误“无法创建“ucAppItem”的实例”。我将用户控件从工具栏拖到窗口上。

用户控件的XAML如下:

<UserControl x:Class="Demos.ucAppItem"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" Width="852" Height="215">
    <Grid>

        <Label Name="lblTitle"  Content="Title" HorizontalAlignment="Left" Margin="233,10,0,0" VerticalAlignment="Top" FontSize="22" FontFamily="Arial"/>


        <Image Width="40" Height="40" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,0,80,0">
            <Image.Style>
                <Style TargetType="{x:Type Image}">
                    <Setter Property="Source" Value="pack://siteoforigin:,,,/arrow2.png"/>
                    <Style.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Source" Value="pack://siteoforigin:,,,/arrow1.png"/>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </Image.Style>
        </Image>
        <Label x:Name="lblRun" Content="Run" HorizontalAlignment="Right" Margin="0,88,35,0" VerticalAlignment="Top" Foreground="#FF2EAADC" FontSize="20">
            <Label.Style>
                <Style TargetType="{x:Type Label}">
                    <Setter Property="Foreground" Value="#FF2EAADC"/>
                    <Style.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Foreground" Value="#006d9e"/>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </Label.Style>
        </Label>
    </Grid>
</UserControl>

窗口的XAML如下:

<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:Demos" x:Class="Demos.Window1"
        Title="Window1" Height="487" Width="854">
    <Grid>

        <local:ucAppItem/>

    </Grid>
</Window>

提前感谢您的帮助!

最佳答案

@Anatoily Nikolaev - 感谢您的帮助!你在标签上的指针解决了我遇到的问题,你对图像的看法是正确的。我会将您的回复标记为答案。问题出在来源上。

我的标签现在定义为:

   <Label x:Name="lblRun" Content="Run" HorizontalAlignment="Right" Margin="0,88,35,0" VerticalAlignment="Top" FontSize="20">
        <Label.Style>
            <Style TargetType="{x:Type Label}">
                <Setter Property="Foreground" Value="#FF2EAADC"/>
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Foreground" Value="#006d9e"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Label.Style>
    </Label>

我的图像现在定义为:

       <Image>
            <Image.Style>
                <Style TargetType="{x:Type Image}">
                    <Setter Property="Source" Value="{StaticResource arrow2}"/>
                    <Setter Property="Height" Value="40"/>
                    <Setter Property="Width" Value="40"/>
                    <Setter Property="VerticalAlignment" Value="Center"/>
                    <Setter Property="Margin" Value="0,0,80,0"/>
                    <Setter Property="HorizontalAlignment" Value="Right"/>
                    <Style.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Source" Value="{StaticResource arrow1}"/>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </Image.Style>
        </Image>

我有资源(在 App.xaml 文件中设置),设置为:

<Application x:Class="demos.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <BitmapImage x:Key="arrow1" UriSource="arrow1.png" />
        <BitmapImage x:Key="arrow2" UriSource="arrow2.png" />
    </Application.Resources>
</Application>

关于c# - 无法在设计器中创建实例 "[user control]"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18552502/

相关文章:

c# - 在 StreamingAssetsPath 上读取和写入文件

c# - 计时器回调关闭 WPF 应用程序(DispatcherTimer 工作..)

wpf - 如何更改 ContentControl 的内容

silverlight - 更改 TargetNullValue 的 TextBlock 样式

C# XML 读取 foreach 总是第一个值

c# - 如何将作用域服务注入(inject) DbContext?网络核心

c# - WPF Datagrid Double Click Cell MVVM设计

wpf - 在MVVM-Light工具箱中使用EventToCommand时如何传递多个参数和EventArgs属性

c# - 在网格中添加动态按钮

xaml - 根据 bool 值更改 Xamarin 表单标签的文本