我是WPF新手并遇到问题我似乎无法找到解决方案。
我正在写一个G19(键盘)小程序。此键盘附有320x240显示器,您可以使用C#进行访问。
我正在使用WPF,因为我不再需要进行任何GDI绘图,而是使用普通控件。
因此。它按我的意愿工作。除了一个UserControl之外,一切都正确绘制。我已下载此控件 - > http://marqueedriproll.codeplex.com/
在设计器中,控件工作,Loaded事件被触发,动画很好。 当我运行我的应用程序时,我只看到标签和文本。动画不起作用,并且Loaded事件不再触发。
感谢任何帮助。
主要功能是我的包装器。包装器已经是Usercontrol并显示可切换的插件。这个包装器有Frame Control(Wrapper1)。每次切换插件时,我都会替换此框架的内容。
public void SetPlugin(IPlugin plugin)
{
if (this.MainPlugin != null)
{
this.MainPlugin.OnHide();
((UserControl)this.MainPlugin).Visibility = System.Windows.Visibility.Hidden;
}
this.MainPlugin = plugin;
((UserControl)this.MainPlugin).Visibility = System.Windows.Visibility.Visible;
this.MainPlugin.OnShow();
this.Wrapper1.Content = this.MainPlugin;
}
我认为以这种方式处理插件系统是正确的方法。插件得到了我的键盘。
我不明白为什么usercontrol只能在设计器视图中工作,而不能在正在运行的应用程序中工作。
滚动标签的基本代码是:
public MarqueeText()
{
this.Loaded += new RoutedEventHandler(MarqueeText_Loaded);
InitializeComponent();
canMain.Height = this.Height;
canMain.Width = this.Width;
}
void MarqueeText_Loaded(object sender, RoutedEventArgs e)
{
StartMarqueeing(_marqueeType);
}
我没有看到它不起作用的原因。实际上我总是找到解决问题的方法,但这次我什么都没看到。
提前致谢。今天真的需要你的帮助。 周六愉快! :)
答案 0 :(得分:0)
我猜你要渲染到位图目标,而不是屏幕上。如果您使用的是RenderTargetBitmap
,那么您有几项责任。您需要设置两个演示文稿源,并确保在调度程序上运行事件。
通常情况下,App.xaml
或Application.Run
会为您执行此操作,但如果您不使用Window
,则可以自行执行此操作。
有关详细信息,请参阅this related question。