{"id":31259,"date":"2024-10-28T11:18:48","date_gmt":"2024-10-28T11:18:48","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=31259"},"modified":"2024-11-26T06:45:43","modified_gmt":"2024-11-26T06:45:43","slug":"wpf-%ea%b0%95%ec%a2%8c-wpf%ec%9d%98-dependency-property%ec%99%80-attached-property-%ec%9d%b4%ed%95%b4%ed%95%98%ea%b8%b0","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/31259\/","title":{"rendered":"WPF \uac15\uc88c, WPF\uc758 Dependency Property\uc640 Attached Property \uc774\ud574\ud558\uae30"},"content":{"rendered":"<p>Windows Presentation Foundation (WPF)\uc740 .NET Framework\uc758 UI \ud504\ub808\uc784\uc6cc\ud06c\ub85c, \uac15\ub825\ud558\uace0 \uc720\uc5f0\ud55c \uc0ac\uc6a9\uc790 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uac1c\ubc1c\ud560 \uc218 \uc788\ub3c4\ub85d \uc9c0\uc6d0\ud569\ub2c8\ub2e4. WPF\ub294 \uc758\uc0ac\uc18c\ud1b5\uacfc \uc815\ubcf4\uc758 \uc2dc\uac01\uc801 \ud45c\ud604\uc744 \uac1c\uc120\ud558\uae30 \uc704\ud574 \ub2e4\uc591\ud55c \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\ub294\ub370, \uadf8 \uc911\uc5d0\uc11c\ub3c4 Dependency Property\uc640 Attached Property\ub294 UI \uc694\uc18c \uac04\uc758 \ub370\uc774\ud130 \ubc14\uc778\ub529 \ubc0f \uc18d\uc131 \uad00\ub9ac\ub97c \uc6a9\uc774\ud558\uac8c \ud574\uc8fc\ub294 \uc911\uc694\ud55c \uac1c\ub150\uc785\ub2c8\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 \uc774 \ub450 \uac00\uc9c0 \uac1c\ub150\uc744 \uae4a\uc774 \uc788\uac8c \ud0d0\uad6c\ud558\uace0, \uc2e4\uc6a9\uc801\uc778 \uc608\uc81c\ub97c \ud1b5\ud574 \uadf8 \ud65c\uc6a9\uc744 \uc124\uba85\ud569\ub2c8\ub2e4.<\/p>\n<h2>Dependency Property\ub780?<\/h2>\n<p>Dependency Property\ub294 WPF\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \ud2b9\ubcc4\ud55c \uc885\ub958\uc758 \uc18d\uc131\uc785\ub2c8\ub2e4. \uc774 \uc18d\uc131\uc740 \ub370\uc774\ud130 \ubc14\uc778\ub529, \uc2a4\ud0c0\uc77c, \uc560\ub2c8\uba54\uc774\uc158 \ubc0f \ub2e4\uc591\ud55c WPF \uae30\ub2a5\uacfc \ud568\uaed8 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \uc124\uacc4\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uac01\uac01\uc758 Dependency Property\ub294 \uae30\ubcf8\uc801\uc778 CLR \uc18d\uc131\uc744 \uae30\ubc18\uc73c\ub85c \ud558\uba70, \ud2b9\uc218\ud55c \uba54\ucee4\ub2c8\uc998\uc744 \ud1b5\ud574 \uc18d\uc131 \uac12\uc758 \uc800\uc7a5 \ubc0f \uc870\ud68c\ub97c \uad00\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n<h3>Dependency Property\uc758 \uc8fc\uc694 \ud2b9\uc9d5<\/h3>\n<ul>\n<li><strong>\uac12\uc758 \uc6b0\uc120 \uc21c\uc704:<\/strong> Dependency Property\ub294 \ub2e4\uc591\ud55c \uc18c\uc2a4\uc5d0\uc11c \uc624\ub294 \uc18d\uc131 \uac12\uc758 \uc6b0\uc120 \uc21c\uc704\ub97c \uacb0\uc815\ud558\ub294 \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uc2a4\ud0c0\uc77c\uc5d0 \uc815\uc758\ub41c \uac12\uc774 \ud574\ub2f9 \uc18d\uc131\uc758 \uae30\ubcf8\uac12\ubcf4\ub2e4 \uc6b0\uc120\uad8c\uc744 \uac00\uc9d1\ub2c8\ub2e4.<\/li>\n<li><strong>\ubcc0\uacbd \uc54c\ub9bc:<\/strong> Dependency Property\ub294 \uac12\uc774 \ubcc0\uacbd\ub420 \ub54c UI\uc5d0 \uc790\ub3d9\uc73c\ub85c \uc54c\ub9bc\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc774\ub294 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\uace0 \uc0ac\uc6a9\uc790 \uacbd\ud5d8\uc744 \ud5a5\uc0c1\uc2dc\ud0a4\ub294 \ub370 \ub9e4\uc6b0 \uc720\uc6a9\ud569\ub2c8\ub2e4.<\/li>\n<li><strong>\ub370\uc774\ud130 \ubc14\uc778\ub529:<\/strong> Dependency Property\ub294 \ub370\uc774\ud130 \ubc14\uc778\ub529\uc744 \uc9c0\uc6d0\ud558\uc5ec UI \uc694\uc18c\uc640 \ub370\uc774\ud130 \uc18c\uc2a4\ub97c \uc5f0\uacb0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 MVVM \ub514\uc790\uc778 \ud328\ud134\uc744 \ud6a8\uacfc\uc801\uc73c\ub85c \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li><strong>\uc2a4\ud0c0\uc77c\uacfc \uc560\ub2c8\uba54\uc774\uc158:<\/strong> Dependency Property\ub97c \uc0ac\uc6a9\ud558\uba74 \uc2a4\ud0c0\uc77c\uacfc \uc560\ub2c8\uba54\uc774\uc158\uc744 \uc801\uc6a9\ud558\uc5ec UI \uc694\uc18c\uc758 \uc678\uad00\uc744 \uc27d\uac8c \ubcc0\uacbd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h3>Dependency Property \uc815\uc758 \ubc0f \uc0ac\uc6a9<\/h3>\n<p>Dependency Property\ub97c \uc815\uc758\ud558\ub294 \uac83\uc740 \ube44\uad50\uc801 \uac04\ub2e8\ud558\uc9c0\ub9cc, \uba87 \uac00\uc9c0 \ub2e8\uacc4\ub97c \uac70\uccd0\uc57c \ud569\ub2c8\ub2e4. \uc77c\ubc18\uc801\uc73c\ub85c, Dependency Property\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ubc29\uc2dd\uc73c\ub85c \uc815\uc758\ub429\ub2c8\ub2e4:<\/p>\n<pre><code class=\"language-csharp\">public static readonly DependencyProperty MyPropertyProperty =\n    DependencyProperty.Register(\n        \"MyProperty\", \n        typeof(string), \n        typeof(MyControl), \n        new PropertyMetadata(default(string)));\n\npublic string MyProperty\n{\n    get { return (string)GetValue(MyPropertyProperty); }\n    set { SetValue(MyPropertyProperty, value); }\n}<\/code><\/pre>\n<p>\uc704\uc758 \ucf54\ub4dc\uc5d0\uc11c \ubcf4\ub4ef\uc774, Dependency Property\ub294 <code>DependencyProperty.Register<\/code> \uba54\uc11c\ub4dc\ub97c \ud638\ucd9c\ud558\uc5ec \ub4f1\ub85d\ub429\ub2c8\ub2e4. \uc774 \uba54\uc11c\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ub9e4\uac1c\ubcc0\uc218\ub97c \ubc1b\uc2b5\ub2c8\ub2e4:<\/p>\n<ul>\n<li><strong>\uc18d\uc131 \uc774\ub984:<\/strong> Dependency Property\uc758 \uc774\ub984<\/li>\n<li><strong>\uc18d\uc131 \uc720\ud615:<\/strong> \uc18d\uc131\uc758 \ub370\uc774\ud130 \uc720\ud615<\/li>\n<li><strong>\uc18c\uc720\uc790 \uc720\ud615:<\/strong> \uc18d\uc131\uc774 \uc18c\uc18d\ub41c \ud074\ub798\uc2a4<\/li>\n<li><strong>\uc18d\uc131 \uba54\ud0c0\ub370\uc774\ud130:<\/strong> \uc18d\uc131\uc758 \uae30\ubcf8\uac12 \ubc0f \ubcc0\uacbd \uc54c\ub9bc\uc744 \uc124\uc815\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h2>Attached Property\ub780?<\/h2>\n<p>Attached Property\ub294 WPF\uc5d0\uc11c \ub2e4\ub978 \uac1d\uccb4\uc5d0 \uc18d\uc131\uc744 &#8220;\ucca8\ubd80&#8221;\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc774\ub294 \uc77c\ubc18\uc801\uc73c\ub85c Layout \ud328\ub110\uacfc \uac19\uc740 \ucee8\ud14c\uc774\ub108 \ud074\ub798\uc2a4\ub97c \uc0ac\uc6a9\ud560 \ub54c \uc720\uc6a9\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, <code>Grid<\/code>\uc640 \uac19\uc740 Layout \ud328\ub110\uc5d0 \uc788\ub294 \uc790\uc2dd \uc694\uc18c\uc758 \uc18d\uc131\uc744 \uc815\uc758\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Attached Property\ub294 \uc815\uc801 \uba54\uc11c\ub4dc\ub85c \uc815\uc758\ub418\uba70, \ud2b9\uc815 \ud074\ub798\uc2a4\uc5d0 \ubc14\uc778\ub529\ud560 \ud544\uc694\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.<\/p>\n<h3>Attached Property\uc758 \uc815\uc758 \ubc0f \uc0ac\uc6a9<\/h3>\n<p>Attached Property\ub97c \uc815\uc758\ud558\ub294 \uacfc\uc815\uc740 Dependency Property\uc640 \uc720\uc0ac\ud558\uc9c0\ub9cc, \uc0ac\uc6a9\ud560 \ub54c\ub294 \ub354\uc6b1 \uac04\ub2e8\ud569\ub2c8\ub2e4. \ub2e4\uc74c\uc740 Attached Property\uc758 \uc815\uc758 \ubc0f \uc0ac\uc6a9 \uc608\uc2dc\uc785\ub2c8\ub2e4:<\/p>\n<pre><code class=\"language-csharp\">public static readonly DependencyProperty MyAttachedProperty =\n    DependencyProperty.RegisterAttached(\n        \"MyAttached\", \n        typeof(int), \n        typeof(MyClass), \n        new PropertyMetadata(0));\n\npublic static void SetMyAttached(UIElement element, int value)\n{\n    element.SetValue(MyAttachedProperty, value);\n}\n\npublic static int GetMyAttached(UIElement element)\n{\n    return (int)element.GetValue(MyAttachedProperty);\n}<\/code><\/pre>\n<p>Attached Property\ub97c \uc0ac\uc6a9\ud560 \ub54c\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ubc29\ubc95\uc73c\ub85c \uc124\uc815\ud558\uace0 \uac00\uc838\uc62c \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<pre><code class=\"language-xaml\">&lt;UserControl ... \n    local:MyClass.MyAttached=\"5\"&gt;\n    &lt;TextBlock Text=\"{Binding Path=(local:MyClass.MyAttached), RelativeSource={RelativeSource AncestorType=UserControl}}\"\/&gt;\n    &lt;\/UserControl&gt;<\/code><\/pre>\n<h3>\uc2e4\uc6a9\uc801\uc778 \uc608\uc81c<\/h3>\n<p>\uc774\uc81c Dependency Property\uc640 Attached Property\ub97c \uc0ac\uc6a9\ud558\ub294 \uac04\ub2e8\ud55c \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8 \uc608\uc81c\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \uc6b0\ub9ac\ub294 \uc0ac\uc6a9\uc790 \uc815\uc758 \ucee8\ud2b8\ub864\uc744 \uc791\uc131\ud558\uc5ec \uc774 \ub450 \uac00\uc9c0 \uc18d\uc131\uc744 \ud65c\uc6a9\ud560 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<h4>1. Dependency Property \uc608\uc81c<\/h4>\n<pre><code class=\"language-csharp\">public class MyCustomControl : Control\n{\n    public static readonly DependencyProperty ExampleProperty =\n        DependencyProperty.Register(\n            \"Example\", \n            typeof(int), \n            typeof(MyCustomControl), \n            new PropertyMetadata(0));\n\n    public int Example\n    {\n        get { return (int)GetValue(ExampleProperty); }\n        set { SetValue(ExampleProperty, value); }\n    }\n}<\/code><\/pre>\n<p>\uc704\uc758 \ucf54\ub4dc\uc5d0\uc11c \uc6b0\ub9ac\ub294 <code>Example<\/code>\ub77c\ub294 \uc774\ub984\uc758 Dependency Property\ub97c \uc815\uc758\ud588\uc2b5\ub2c8\ub2e4. \uc774 \uc18d\uc131\uc740 \ubd80\ubaa8 \ucee8\ud2b8\ub864\uc774 \ubcc0\uacbd\ud560 \uc218 \uc788\ub294 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\uace0 \uad00\ub9ac\ud560 \uc218 \uc788\uac8c \ud574\uc90d\ub2c8\ub2e4.<\/p>\n<h4>2. Attached Property \uc608\uc81c<\/h4>\n<pre><code class=\"language-csharp\">public static class GridHelper\n{\n    public static readonly DependencyProperty RowSpanProperty =\n        DependencyProperty.RegisterAttached(\"RowSpan\", typeof(int), typeof(GridHelper), new PropertyMetadata(1));\n\n    public static void SetRowSpan(UIElement element, int value)\n    {\n        element.SetValue(RowSpanProperty, value);\n    }\n\n    public static int GetRowSpan(UIElement element)\n    {\n        return (int)element.GetValue(RowSpanProperty);\n    }\n}<\/code><\/pre>\n<p>\uc704\uc758 \ucf54\ub4dc\ub294 <code>RowSpan<\/code>\uc774\ub77c\ub294 Attached Property\ub97c \uc815\uc758\ud558\uc5ec Grid \ud328\ub110\uc758 \uc790\uc2dd \uc694\uc18c\uc5d0 \uc0ac\uc6a9\ud560 \uc218 \uc788\uac8c \ud569\ub2c8\ub2e4. \uc774\ub807\uac8c \uc815\uc758\ub41c Attached Property\ub294 \ub2e4\uc591\ud55c UI \uc694\uc18c\uc5d0 \uc801\uc6a9\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>Dependency Property\uc640 Attached Property\uc758 \ucc28\uc774\uc810<\/h2>\n<p>Dependency Property\uc640 Attached Property\ub294 \ub458 \ub2e4 WPF\uc5d0\uc11c \ub9e4\uc6b0 \uc720\uc6a9\ud558\uc9c0\ub9cc, \ub2e4\uc74c\uacfc \uac19\uc774 \uba87 \uac00\uc9c0 \uc911\uc694\ud55c \ucc28\uc774\uc810\uc774 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<ul>\n<li><strong>\uc815\uc758 \uc704\uce58:<\/strong> Dependency Property\ub294 \ud2b9\uc815 \ud074\ub798\uc2a4\uc5d0 \uc18d\ud558\ub294 \ubc18\uba74, Attached Property\ub294 \uc5ec\ub7ec \ud074\ub798\uc2a4\uc5d0 \uc801\uc6a9\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li><strong>\uc0ac\uc6a9 \uc2dc\ub098\ub9ac\uc624:<\/strong> Dependency Property\ub294 \uc790\uae30 \uc790\uc2e0\uc758 \uc18d\uc131\uc73c\ub85c \uc0ac\uc6a9\ub418\uba70, Attached Property\ub294 \ub2e4\ub978 \ud074\ub798\uc2a4\uc5d0 \uc18d\uc131\uc744 &#8220;\ucca8\ubd80&#8221;\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/li>\n<li><strong>\uc815\uc801 \uba54\uc11c\ub4dc \uc0ac\uc6a9:<\/strong> Attached Property\ub294 \uc815\uc801 \uba54\uc11c\ub4dc\ub85c \uc124\uc815\ud558\uace0 \uac00\uc838\uc624\ub3c4\ub85d \uc815\uc758\ub418\uba70, \uc885\uc885 \ub2e4\ub978 \ucee8\ud14c\uc774\ub108 \ub610\ub294 \ubd80\ubaa8 \uc694\uc18c\uc5d0 \ub300\ud574 \uc18d\uc131\uc744 \uc124\uc815\ud558\ub294 \ub370 \uc720\uc6a9\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h2>\uacb0\ub860<\/h2>\n<p>Dependency Property\uc640 Attached Property\ub294 WPF\uc5d0\uc11c \ub9e4\uc6b0 \uc911\uc694\ud55c \uac1c\ub150\uc785\ub2c8\ub2e4. \uc774 \ub450 \uac00\uc9c0 \uc18d\uc131 \uba54\ucee4\ub2c8\uc998\uc744 \uc774\ud574\ud558\uba74 \ub354 \uc720\uc5f0\ud558\uace0 \uac15\ub825\ud55c \uc0ac\uc6a9\uc790 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uad6c\ucd95\ud558\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub429\ub2c8\ub2e4. \uac15\ub825\ud55c \ub370\uc774\ud130 \ubc14\uc778\ub529, \uc2a4\ud0c0\uc77c\ub9c1 \ubc0f UI \uc694\uc18c \uac04\uc758 \uc0c1\ud638\uc791\uc6a9\uc744 \uc218\uc6a9\ud560 \uc218 \uc788\ub294 \ub2a5\ub825 \ub355\ubd84\uc5d0 WPF\ub97c \uc0ac\uc6a9\ud560 \ub54c \uc774\ub7ec\ud55c \uc18d\uc131\ub4e4\uc744 \ub9c8\uc2a4\ud130\ud558\ub294 \uac83\uc740 \ud544\uc218\uc801\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc774 \uae00\uc744 \ud1b5\ud574 Dependency Property\uc640 Attached Property\uc758 \uc774\ud574\ub97c \ub3d5\uace0, \uc774\ub7ec\ud55c \uac1c\ub150\uc774 WPF \uac1c\ubc1c\uc5d0 \uc5b4\ub5bb\uac8c \ud65c\uc6a9\ub420 \uc218 \uc788\ub294\uc9c0\uc5d0 \ub300\ud574 \uae4a\uc774 \uc788\ub294 \ud1b5\ucc30\uc744 \uc81c\uacf5\ud558\uc600\uae30\ub97c \ubc14\ub78d\ub2c8\ub2e4. \uc774 \ub0b4\uc6a9\uc744 \ubc14\ud0d5\uc73c\ub85c \uc2e4\ubb34\uc5d0\uc11c \uc720\uc6a9\ud558\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 WPF \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uac1c\ubc1c\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.<\/p>\n<h2>\ucc38\uace0 \uc790\ub8cc<\/h2>\n<ul>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/framework\/wpf\/advanced\/dependency-properties-overview\">Microsoft Docs: Dependency Properties Overview<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/framework\/wpf\/advanced\/attached-properties-overview\">Microsoft Docs: Attached Properties Overview<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/standard\/data\/bindings-overview\">Microsoft Docs: Data Binding Overview<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Windows Presentation Foundation (WPF)\uc740 .NET Framework\uc758 UI \ud504\ub808\uc784\uc6cc\ud06c\ub85c, \uac15\ub825\ud558\uace0 \uc720\uc5f0\ud55c \uc0ac\uc6a9\uc790 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uac1c\ubc1c\ud560 \uc218 \uc788\ub3c4\ub85d \uc9c0\uc6d0\ud569\ub2c8\ub2e4. WPF\ub294 \uc758\uc0ac\uc18c\ud1b5\uacfc \uc815\ubcf4\uc758 \uc2dc\uac01\uc801 \ud45c\ud604\uc744 \uac1c\uc120\ud558\uae30 \uc704\ud574 \ub2e4\uc591\ud55c \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\ub294\ub370, \uadf8 \uc911\uc5d0\uc11c\ub3c4 Dependency Property\uc640 Attached Property\ub294 UI \uc694\uc18c \uac04\uc758 \ub370\uc774\ud130 \ubc14\uc778\ub529 \ubc0f \uc18d\uc131 \uad00\ub9ac\ub97c \uc6a9\uc774\ud558\uac8c \ud574\uc8fc\ub294 \uc911\uc694\ud55c \uac1c\ub150\uc785\ub2c8\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 \uc774 \ub450 \uac00\uc9c0 \uac1c\ub150\uc744 \uae4a\uc774 \uc788\uac8c \ud0d0\uad6c\ud558\uace0, \uc2e4\uc6a9\uc801\uc778 \uc608\uc81c\ub97c &hellip; <a href=\"https:\/\/atmokpo.com\/w\/31259\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;WPF \uac15\uc88c, WPF\uc758 Dependency Property\uc640 Attached Property \uc774\ud574\ud558\uae30&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[39],"tags":[],"class_list":["post-31259","post","type-post","status-publish","format-standard","hentry","category-wpf-"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>WPF \uac15\uc88c, WPF\uc758 Dependency Property\uc640 Attached Property \uc774\ud574\ud558\uae30 - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/31259\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WPF \uac15\uc88c, WPF\uc758 Dependency Property\uc640 Attached Property \uc774\ud574\ud558\uae30 - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Windows Presentation Foundation (WPF)\uc740 .NET Framework\uc758 UI \ud504\ub808\uc784\uc6cc\ud06c\ub85c, \uac15\ub825\ud558\uace0 \uc720\uc5f0\ud55c \uc0ac\uc6a9\uc790 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uac1c\ubc1c\ud560 \uc218 \uc788\ub3c4\ub85d \uc9c0\uc6d0\ud569\ub2c8\ub2e4. WPF\ub294 \uc758\uc0ac\uc18c\ud1b5\uacfc \uc815\ubcf4\uc758 \uc2dc\uac01\uc801 \ud45c\ud604\uc744 \uac1c\uc120\ud558\uae30 \uc704\ud574 \ub2e4\uc591\ud55c \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\ub294\ub370, \uadf8 \uc911\uc5d0\uc11c\ub3c4 Dependency Property\uc640 Attached Property\ub294 UI \uc694\uc18c \uac04\uc758 \ub370\uc774\ud130 \ubc14\uc778\ub529 \ubc0f \uc18d\uc131 \uad00\ub9ac\ub97c \uc6a9\uc774\ud558\uac8c \ud574\uc8fc\ub294 \uc911\uc694\ud55c \uac1c\ub150\uc785\ub2c8\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 \uc774 \ub450 \uac00\uc9c0 \uac1c\ub150\uc744 \uae4a\uc774 \uc788\uac8c \ud0d0\uad6c\ud558\uace0, \uc2e4\uc6a9\uc801\uc778 \uc608\uc81c\ub97c &hellip; \ub354 \ubcf4\uae30 &quot;WPF \uac15\uc88c, WPF\uc758 Dependency Property\uc640 Attached Property \uc774\ud574\ud558\uae30&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/31259\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-10-28T11:18:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-26T06:45:43+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"1\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/31259\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/31259\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"WPF \uac15\uc88c, WPF\uc758 Dependency Property\uc640 Attached Property \uc774\ud574\ud558\uae30\",\"datePublished\":\"2024-10-28T11:18:48+00:00\",\"dateModified\":\"2024-11-26T06:45:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/31259\/\"},\"wordCount\":134,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"WPF \uac1c\ubc1c\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/31259\/\",\"url\":\"https:\/\/atmokpo.com\/w\/31259\/\",\"name\":\"WPF \uac15\uc88c, WPF\uc758 Dependency Property\uc640 Attached Property \uc774\ud574\ud558\uae30 - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-10-28T11:18:48+00:00\",\"dateModified\":\"2024-11-26T06:45:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/31259\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/31259\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/31259\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WPF \uac15\uc88c, WPF\uc758 Dependency Property\uc640 Attached Property \uc774\ud574\ud558\uae30\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"WPF \uac15\uc88c, WPF\uc758 Dependency Property\uc640 Attached Property \uc774\ud574\ud558\uae30 - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/atmokpo.com\/w\/31259\/","og_locale":"ko_KR","og_type":"article","og_title":"WPF \uac15\uc88c, WPF\uc758 Dependency Property\uc640 Attached Property \uc774\ud574\ud558\uae30 - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Windows Presentation Foundation (WPF)\uc740 .NET Framework\uc758 UI \ud504\ub808\uc784\uc6cc\ud06c\ub85c, \uac15\ub825\ud558\uace0 \uc720\uc5f0\ud55c \uc0ac\uc6a9\uc790 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uac1c\ubc1c\ud560 \uc218 \uc788\ub3c4\ub85d \uc9c0\uc6d0\ud569\ub2c8\ub2e4. WPF\ub294 \uc758\uc0ac\uc18c\ud1b5\uacfc \uc815\ubcf4\uc758 \uc2dc\uac01\uc801 \ud45c\ud604\uc744 \uac1c\uc120\ud558\uae30 \uc704\ud574 \ub2e4\uc591\ud55c \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\ub294\ub370, \uadf8 \uc911\uc5d0\uc11c\ub3c4 Dependency Property\uc640 Attached Property\ub294 UI \uc694\uc18c \uac04\uc758 \ub370\uc774\ud130 \ubc14\uc778\ub529 \ubc0f \uc18d\uc131 \uad00\ub9ac\ub97c \uc6a9\uc774\ud558\uac8c \ud574\uc8fc\ub294 \uc911\uc694\ud55c \uac1c\ub150\uc785\ub2c8\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 \uc774 \ub450 \uac00\uc9c0 \uac1c\ub150\uc744 \uae4a\uc774 \uc788\uac8c \ud0d0\uad6c\ud558\uace0, \uc2e4\uc6a9\uc801\uc778 \uc608\uc81c\ub97c &hellip; \ub354 \ubcf4\uae30 \"WPF \uac15\uc88c, WPF\uc758 Dependency Property\uc640 Attached Property \uc774\ud574\ud558\uae30\"","og_url":"https:\/\/atmokpo.com\/w\/31259\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-10-28T11:18:48+00:00","article_modified_time":"2024-11-26T06:45:43+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"1\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/31259\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/31259\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"WPF \uac15\uc88c, WPF\uc758 Dependency Property\uc640 Attached Property \uc774\ud574\ud558\uae30","datePublished":"2024-10-28T11:18:48+00:00","dateModified":"2024-11-26T06:45:43+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/31259\/"},"wordCount":134,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["WPF \uac1c\ubc1c"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/31259\/","url":"https:\/\/atmokpo.com\/w\/31259\/","name":"WPF \uac15\uc88c, WPF\uc758 Dependency Property\uc640 Attached Property \uc774\ud574\ud558\uae30 - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-10-28T11:18:48+00:00","dateModified":"2024-11-26T06:45:43+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/31259\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/31259\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/31259\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"WPF \uac15\uc88c, WPF\uc758 Dependency Property\uc640 Attached Property \uc774\ud574\ud558\uae30"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/31259","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=31259"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/31259\/revisions"}],"predecessor-version":[{"id":31260,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/31259\/revisions\/31260"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=31259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=31259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=31259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}