我試圖創建從標準的TextBlock這樣繼承的自定義WPF控件:如何引用自定義WPF控件在generic.xaml
public class DynamicDateTextBlock : TextBlock
{
static DynamicDateTextBlock()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(DynamicDateTextBlock), new FrameworkPropertyMetadata(typeof(DynamicDateTextBlock)));
}
}
的根據generic.xaml看起來是這樣的:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Test">
<Style TargetType="{x:Type local:DynamicDateTextBlock}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:DynamicDateTextBlock}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
如果我把Control.cs放在我的Solution Test的根目錄下,一切正常。 但如果我將其移動到子文件夾測試\控制並相應地更改命名空間突然generic.xaml是給編譯錯誤
名稱「DynamicDateTextBlock」沒有命名空間「CLR的命名空間中:測試。控制」
的CS命名空間被改爲Test.Controls
,並在XAML我嘗試使用這樣的:xmlns:local="clr-namespace:Test.Controls"
是還有什麼我必須做的?
使用Resharper重構控件以移動它會導致同樣的問題。
這就是我想,但之後我感動的控制給它沒有編譯了:'有建立errors.' 試圖運行後,錯誤列表顯示多了一個: '找不到樣式屬性「模板'在類型'Test.Controls.DynamicDateTextBlock'上。 5號線位置17.' – Mikk
@Mikk請看我最新的答案。隨意問任何問題。 – StepUp
這很奇怪,對我而言,即使是手工添加新的空白解決方案也無濟於事。 autocomplete在intellisense中暗示完全相同..但我無法構建並運行結果。 – Mikk