programing tip

wpf 창에 사용자 정의 컨트롤 추가

itbloger 2020. 11. 28. 08:49
반응형

wpf 창에 사용자 정의 컨트롤 추가


내가 만든 사용자 정의 컨트롤이 있지만 창에서 XAML에 추가하려고하면 Intellisense가이 컨트롤을 선택하지 않고 창에 추가하는 방법을 알 수 없습니다.


window 태그 안에 참조를 추가해야합니다. 다음과 같은 것 :

xmlns:controls="clr-namespace:YourCustomNamespace.Controls;assembly=YourAssemblyName"

(xmlns : controls = "intellisense를 추가하면이 작업이 더 쉬워집니다.)

그런 다음 다음을 사용하여 컨트롤을 추가 할 수 있습니다.

<controls:CustomControlClassName ..... />

네임 스페이스 를 추가해야 할 수도 있습니다 .

<Window x:Class="UserControlTest.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:UserControlTest"
    Title="User Control Test" Height="300" Width="300">
    <local:UserControl1 />
</Window>

몇 가지 팁 : 먼저 컨트롤이있는 네임 스페이스를 포함하는 xmlns가 맨 위에 있는지 확인하십시오.

xmlns:myControls="clr-namespace:YourCustomNamespace.Controls;assembly=YourAssemblyName"
<myControls:thecontrol/>

둘째, 때때로 지능은 어리 석다.


이것이 내가 작동하게 된 방법입니다.

사용자 제어 WPF

<UserControl x:Class="App.ProcessView"
             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="300" d:DesignWidth="300">
    <Grid>

    </Grid>
</UserControl>

사용자 제어 C #

namespace App {
    /// <summary>
    /// Interaction logic for ProcessView.xaml
    /// </summary>
    public partial class ProcessView : UserControl // My custom User Control
    {
        public ProcessView()
        {
            InitializeComponent();
        }
    } }

MainWindow WPF

<Window x:Name="RootWindow" x:Class="App.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:app="clr-namespace:App"
        Title="Some Title" Height="350" Width="525" Closing="Window_Closing_1" Icon="bouncer.ico">
    <Window.Resources>
        <app:DateConverter x:Key="dateConverter"/>
    </Window.Resources>
    <Grid>
        <ListView x:Name="listView" >
            <ListView.ItemTemplate>
                <DataTemplate>
                    <app:ProcessView />
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </Grid>
</Window>

참고 URL : https://stackoverflow.com/questions/1093429/add-a-user-control-to-a-wpf-window

반응형