繁体   English   中英

不能在 xaml WPF 中使用来自其他项目的控制

[英]Can't use control from other project in xaml WPF

我想使用另一个 class 的控件

xmlns:control="clr-namespace:Devices;assembly=Devices"

 <Grid>
    <control:D_main VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch"/>
</Grid>

而这个控制

<UserControl x:Class="Devices.D_main"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:Devices"
    mc:Ignorable="d"
   Height="704.667" Width="1173.833">
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="611*"/>
        <ColumnDefinition Width="563*"/>
    </Grid.ColumnDefinitions>
    <local:DHControl x:Name="HControl" Width="Auto" Height="Auto" Grid.ColumnSpan="2"/>
</Grid>

class 是公开的。 我可以以这种方式使用所有其他控件,但是这样我看到了一个错误。

例外:无法创建“D_main”的实例。

堆栈跟踪:

在 Microsoft.VisualStudio.DesignTools.Designer.InstanceBuilders.ClrObjectInstanceBuilder.InstantiateTargetType(ILocalInstanceBuilderContext context, ViewNode viewNode) 在 Microsoft.VisualStudio.DesignTools.InstantiateTargetType(类型类型,Boolean supportInternal) .InstanceBuilders.ClrObjectInstanceBuilder.Instantiate(ILocalInstanceBuilderContext context, ViewNode viewNode) at Microsoft.VisualStudio.DesignTools.WpfDesigner.InstanceBuilders.FrameworkElementInstanceBuilder.Instantiate(ILocalInstanceBuilderContext context, ViewNode viewNode) at Microsoft.VisualStudio.DesignTools.WpfDesigner.InstanceBuilders.UserControlInstanceBuilder.Instantiate(ILocalInstanceBuilderContext上下文,ViewNode viewNode) 在 Microsoft.VisualStudio.DesignTools.Designer.InstanceBuilders.LocalInstanceManager.CreateInstance(IInstanceBuilder builder, ViewNode viewNode)

当我在构建之前通过控制 hover 时,我看到一条消息:

指数数组的边界之外。

您的问题和您附加的代码有点不清楚。 我可以给你一个例子。 如果您有这样的 class (UserControl):

<UserControl x:Class="myProject.newUC"
             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" 
             d:DesignHeight="200" d:DesignWidth="200">
    <Grid Background="Red">
            
    </Grid>
</UserControl>

您可以在 window 中使用此 class,如下所示:

<Window x:Class="myProject.MainWindow"        
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:local="clr-myProject"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
            </Grid.RowDefinitions>
            <local:newUC></local:newUC>
        </Grid>
    </Window>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM