我試圖爲我的WPF應用程序創建自定義控件,並且無法理解它爲什麼不能正常工作。來自WPF應用程序中的自定義控件的異常
我有兩個項目 - 一個是我的自定義控件庫,其中一個自定義控件源自Image
,只有很少的方法,第二個項目我想使用我的控件。我不想做任何樣式或綁定,所以我使用默認值。
所以,我的自定義控件主題(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:RTPlayer">
<Style
TargetType="{x:Type local:RTPlayer}" BasedOn="{StaticResource {x:Type Image}}">
</Style>
和代碼部分:
namespace RTPlayer
{
public class RTPlayer : Image
{
static RTPlayer()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(RTPlayer), new FrameworkPropertyMetadata(typeof(RTPlayer)));
}
public void Start()
{
// ....
}
}
}
在我的主要項目中,我已經添加引用到我的圖書館。 DLL文件,我試圖使用控制:
<Window x:Class="rtspWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:rtspWPF"
xmlns:CustomControls="clr-namespace:RTPlayer;assembly=RTPlayer"
xmlns:CustomControls="clr-namespace:RTPlayer;assembly=RTPlayer"
Title="MainWindow" Height="auto" Width="auto">
<CustomControls:RTPlayer x:Name="image" Margin="10,10,10,10" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="auto" Height="auto"/>
問題是 - 1)xaml CustomControl:RTPlayer
字符串警告我:「無法找到名爲」System.Windows.Controls.Image「的資源。資源名稱是區分大小寫的「; 2)如果我嘗試啓動應用其拋出Markup.XamlParseException
是Markup.StaticResourceHolder
拋出異常..
什麼是錯我的代碼
你可以發佈'XamlParseException.InnerException'的堆棧跟蹤嗎? – haindl
圖像控件沒有可以在樣式中繼承的基礎樣式。 – 2016-10-10 18:27:23