사용자 속성 중 하나의 속성에 대해 기본값을 사용하여 컨트롤을 만들고 있습니다. 내가 현재 어떻게하고 있는지 알려드립니다. WPF에서 기본값으로 노출 된 속성을 만드는 올바른 방법은 무엇입니까?
using System.Windows;
using System.Windows.Controls;
namespace Example
{
/// <summary>
/// Interaction logic for HelloWorld.xaml
/// </summary>
public partial class HelloWorld : UserControl
{
public HelloWorld()
{
InitializeComponent();
}
public static readonly DependencyProperty TextToDisplayProperty = DependencyProperty.Register("TextToDisplay", typeof(string),
typeof(HelloWorld), new PropertyMetadata("Hello World!"));
public string TextToDisplay
{
get { return (string)GetValue(TextToDisplayProperty); }
set { SetValue(TextToDisplayProperty, value); }
}
}
}
문제
<UserControl x:Class="Example.HelloWorld"
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"
x:Name="This">
<Grid>
<TextBlock Text="{Binding ElementName=This, Path=TextToDisplay}"/>
</Grid>
</UserControl>
는 내 기본 값을 표시하지 않습니다 미리보기 창에서 찾고 때.
하지만 다른 뭔가에 내 컨트롤을 넣을 경우 기본 텍스트는 나타나지 않습니다.
나는 UserControl
오전 때 디자이너에 표시되지 않는다는 사실은 내가 그것을 올바른 방법을 수행하지 오전 나를 걱정한다. 사용자에게 속성을 올바르게 표시하고 있습니까? 그렇지 않은 경우 컨트롤의 사용자가 재정의 할 수있는 속성을 표시하는 올바른 방법은 무엇입니까?
디자이너를 사용하지 않는 것이 좋습니다. 또한 사용자 컨트롤의 속성을 표시하는 올바른 방법입니다. –
@ H.B. 문제는 내가 만들고있는 실제 컨트롤이 매우 복잡하고 설정하려는 속성 중 많은 부분이 브러시 색상입니다. 그러나 모든 브러쉬 색상이 흰색으로 끝나고 모든 문자열이 비어 있으므로 레이아웃을 올바르게 가져올 수 없습니다. 난 하드 코딩 된 값을 사용하여 돌아가서 모든 것을 대체해야합니다. –