在阅读了有关相同论点的所有先前答案之后,我发布了以下问题。他们都没有工作。
我正在创建一个向导,它由一定数量的幻灯片组成。 每个幻灯片都是一个用户控件,并继承自一个名为" SlideBase"
的基类<div id='content'>
Here are some texts.
A second line.
<a href='http://google.com'>Click Here!</a>
Another Line.
<div class='image-parent'>
<img src='image.jpg' />
</div>
Another another line.
<div class='image-parent'>
<img src='secondImage.jpg' />
</div>
Last line and many more to come.
</div>
Cover.XAML以下列方式从SlideBase继承
public abstract class SlideBase: System.Windows.Controls.UserControl
{
#region DependecyProperty
public static readonly DependencyProperty FilterOptionProperty =
DependencyProperty.Register("FilterOption", typeof(FilterOptionsBase), typeof(SlideBase), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault,OnFilterChanged));
private static void OnFilterChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
SlideBase s = (SlideBase)d;
(s.Content as FrameworkElement).DataContext = (FilterOptionsBase)e.NewValue;
}
public FilterOptionsBase FilterOption
{
get
{
return (FilterOptionsBase)GetValue(FilterOptionProperty);
}
set
{
SetValue(FilterOptionProperty, value);
}
}
public static readonly DependencyProperty IsValidProperty =
DependencyProperty.Register("IsValid", typeof(bool), typeof(SlideBase), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
public virtual bool IsValid
{
get
{
return (bool)GetValue(IsValidProperty);
}
set
{
SetValue(IsValidProperty, value);
}
}
#endregion
}
使用以下Cover.xaml.cs
<base:SlideBase
xmlns:base="clr-namespace:WPFOPS.Model.OperatorLog.Models"
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:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
x:Class="WPFOPS.Views.OperatorLog.FilterWizard.Cover"
mc:Ignorable="d"
Width="615" Height="370">
<UserControl.Resources>
<ResourceDictionary>
<Storyboard x:Name="Animation01" RepeatBehavior="Forever">
我收到以下错误:
这是VS2015中的WPF项目。目标框架4.5.2。平台目标&#34;任何CPU&#34;。
任何提示都非常受欢迎 感谢
答案 0 :(得分:0)
因为它应该是
<base:SlideBase.Resources
答案 1 :(得分:0)
VS消息具有误导性。
问题与StoryBoard元素有关。它必须有一个键
<Storyboard x:Key="Animation01" x:Name="Animation01" RepeatBehavior="Forever">
从codebehind我需要以这种方式访问它:
public Cover():base()
{
InitializeComponent();
//Loaded += (s, e) =>
//{
// Animation01.Begin(); // THIS IS WRONG
//};
IsValid = true;
this.Loaded += new RoutedEventHandler(MainWindow_Loaded);
}
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
Storyboard sb = this.FindResource("Animation01") as Storyboard;
sb.Begin();
}
我很幸运,因为来自VS的所有错误消息绝对具有误导性。
我卸载了Views文件夹和ViewModels文件夹。我只使用&#34; .cs&#34;编译了项目。内部的文件,以便在设计时正确命名和找到所有名称空间(在本例中为SlideBase名称空间)。
我再次加载了Views和ViewModels文件夹,最后得到了与Storyboard相关的错误。
希望有所帮助