如何在wpf中进行幻灯片放映。更改窗口内容,如幻灯片放映

时间:2011-09-15 14:57:54

标签: c# .net wpf .net-4.0

我想显示窗口,当用户点击按钮,然后在同一窗口中显示下一个内容。我也想做一个动画。可能吗?动画并不重要。 我只想动态更改内容。我无法在任何地方找到它......

请在没有任何框架的情况下为此提供更简单的解决方案。

内容不仅仅是图片。会有很多控件。

我在.NET Framework 4.0中使用 WPF

4 个答案:

答案 0 :(得分:3)

在没有大量开销的情况下解决这个问题的一种方法是将幻灯片的所有幻灯片准备为UserControls,让主窗口有一个

<ContentPresenter x:Name="CurrentSlidePresenter" />

并使用

UserControl currentSlide = GetCurrentSlide(); // implement this to your liking
CurrentSlidePresenter.Content = currentSlide;
按钮单击处理程序中的

可以使用FluidKit扩展此方法以使用动画。

答案 1 :(得分:1)

简单的解决方案是使用XamlReader类从项目中的xaml加载内容。

这是一个链接:http://blogs.msdn.com/b/ashish/archive/2007/08/14/dynamically-loading-xaml.aspx

链接中的简化代码:

public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
            LoadXAMLMethod(); 
        }


        public void LoadXAMLMethod()
        {
            try
            {
                StreamReader mysr = new StreamReader("Page1.xaml");
                DependencyObject rootObject = XamlReader.Load(mysr.BaseStream) as DependencyObject;

                this.Content = rootObject;
            }
            catch (FileNotFoundException ex)
            {
                MessageBox.Show(ex.Message.ToString());    
            }
        }
    }
}

P.S。避免更可靠的方法,例如使用MVVM并不是一件好事。如果你经常要解决这样的UI操作任务,你应该考虑在某些时候熟悉MVVM。

答案 2 :(得分:0)

简而言之,您必须使用WPF中的StoryBoard和Trigger Animation技术。谷歌的“WPF窗口滑动动画示例”。

Found this useful

答案 3 :(得分:0)

您在寻找http://transitionals.codeplex.com/吗?

“Transitionals是一个用于构建和使用WPF转换的框架,它提供了一种以丰富和动画方式在UI视图之间切换的简便方法。”