none
[c#] wpf user control을 winform에 추가시킬 때 에러가 발생합니다. RRS feed

  • 질문

  • 안녕하세요.

    WPF User Control 라이브러리를 생성해서, User Control 2개(RoundButton, TextArrowButton)를 생성했습니다.

    그리고 Winform에 user control을 추가하려고 했는데, 

    1개는 문제 없이 디자이너에 추가되는데,

    나머지 1개는 에러가 납니다.

    Failed to create component 'TextArrowButton'. The error message follows:

    'System.TypeLoadException: Could not load type 'CustomControls.TextArrowButton' from assembly 'CustomControls, Version=1.0.0.0, Culture=neutra, PublicKeyToken=null'.

    at System.Reflection.RuntimeAssembly.GetType

    .....

    이런식으로 에러가 납니다.

    TextArrowButton은 기본 버튼입니다.

    TextArrorButton.xaml.cs

    namespace CustomControls
    {
        /// <summary>
        /// Interaction logic for TextArrowButton.xaml
        /// </summary>
        public partial class TextArrowButton : UserControl
        {
            public TextArrowButton()
            {
                InitializeComponent();
            }
        }
    }

    TextArrowButton.xaml

    <UserControl x:Class="CustomControls.TextArrowButton"
                 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" 
                 xmlns:local="clr-namespace:CustomControls"
                 mc:Ignorable="d" 
                 d:DesignHeight="300" d:DesignWidth="300">
        <Grid>
                <Button></Button>
        </Grid>
    </UserControl>

    이 문제는 어떻게 해결해야 할까요?

    2020년 4월 12일 일요일 오전 6:56

답변

  • 1. Toolbox -> WPF-> ElementHost에서 새 “ElementHost”를 만듭니다.
    2. Project-> Add User Control… -> WPF -> User Control (WPF)에서 새 wpf user control을 추가합니다.
    그런 다음 "UserControl1.xaml"의 내용을 편집합니다.

    <UserControl … omitted
                 d:DesignHeight="300" d:DesignWidth="300">
        <Grid>
                <Button></Button>
        </Grid>
    </UserControl>
    

    마지막으로 ElementHost에 사용자 정의 컨트롤을 추가합니다.

        public Form1()
        {
            InitializeComponent();
    
            UserControl1 uc = new UserControl1();
            elementHost1.Child = uc;
        }
    

    MSDN Community Support Ricky

    다른 커뮤니티 멤버에게 도움이 될 수 있게 문제를 해결 한 답변을 '답변으로 표시'를 클릭하시고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있을 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.


    • 답변으로 표시됨 라바 2020년 4월 16일 목요일 오전 7:27
    2020년 4월 16일 목요일 오전 6:47
    중재자