wpf怎么实现划屏效果

aggier 2011-08-08 09:18:23
使用wpf怎么实现划屏效果??请高手指教!!非常非常感谢!!
...全文
698 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
andy1020tc 2011-11-14
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 kuki4552993 的回复:]

引用 11 楼 andy1020tc 的回复:

引用 9 楼 fallincloud 的回复:
<local:UserControl1 x:Name="UserControlPart1">
<local:UserControl1.RenderTransform>
<TransformGroup>
<TranslateTransform ></TranslateTransform>
……
[/Quote]
3Q...
幸福小6 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 andy1020tc 的回复:]

引用 9 楼 fallincloud 的回复:
<local:UserControl1 x:Name="UserControlPart1">
<local:UserControl1.RenderTransform>
<TransformGroup>
<TranslateTransform ></TranslateTransform>
</TransformGroup>
</local……
[/Quote]
相当于引用一个命名空间一样

<Window x:Class="CommonWPFApplication.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:CommonWPFApplication"
MouseMove="Grid_MouseMove"
Title="MainWindow" Height="350" Width="525">

注意上面code中的第4行“xmlns:local="clr-namespace:CommonWPFApplication”
uncle_bacon 2011-10-18
  • 打赏
  • 举报
回复
学习了。
andy1020tc 2011-10-04
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 andy1020tc 的回复:]
引用 9 楼 fallincloud 的回复:
<local:UserControl1 x:Name="UserControlPart1">
<local:UserControl1.RenderTransform>
<TransformGroup>
<TranslateTransform ></TranslateTransform>
</TransformGroup>
</local:……
[/Quote]
这里需要引用什么程序集呢?
andy1020tc 2011-10-04
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 fallincloud 的回复:]
<local:UserControl1 x:Name="UserControlPart1">
<local:UserControl1.RenderTransform>
<TransformGroup>
<TranslateTransform ></TranslateTransform>
</TransformGroup>
</local:UserControl1.RenderTransform>
</local:UserControl1>
<local:UserControl2 x:Name="UserControlPart2" Visibility="Collapsed">
<local:UserControl2.RenderTransform>
<TransformGroup>
<TranslateTransform ></TranslateTransform>
</TransformGroup>
</local:UserControl2.RenderTransform>
</local:UserControl2>
[/Quote]
我是个初学者 我想问下 这里local:UserControl1 这些代码 我复制过去
提示“未找到类型“local:UserControl1”。请确保不缺少程序集引用,并且已生成所有引用的程序集。”
这是什么原因啊?我之前在网上找资料时 也复制过这样的代码 有local的 也是提示这样的错误 不太明白
请高手帮忙解答下 谢谢~!
yosyg 2011-09-28
  • 打赏
  • 举报
回复
学习了
fallincloud 2011-09-23
  • 打赏
  • 举报
回复
我做了一个简单的Sample:
要翻页,我首先创建了两个UserControl:

1.UserControl1
<UserControl x:Class="CommonWPFApplication.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid Background="Cyan">
<TextBlock FontSize="36">111111</TextBlock>
</Grid>
</UserControl>


2.UserControl2:
<UserControl x:Class="CommonWPFApplication.UserControl2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid Background="Violet">
<TextBlock FontSize="36">22222</TextBlock>
</Grid>
</UserControl>


3.在主页面中添加这两个页面,设置其中一个隐藏(这个设计需要重构+改进,这里只是示例用)
<Window x:Class="CommonWPFApplication.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:CommonWPFApplication"
MouseMove="Grid_MouseMove"
Title="MainWindow" Height="350" Width="525">
<Grid x:Name="GridContent" >
<local:UserControl1 x:Name="UserControlPart1">
<local:UserControl1.RenderTransform>
<TransformGroup>
<TranslateTransform ></TranslateTransform>
</TransformGroup>
</local:UserControl1.RenderTransform>
</local:UserControl1>
<local:UserControl2 x:Name="UserControlPart2" Visibility="Collapsed">
<local:UserControl2.RenderTransform>
<TransformGroup>
<TranslateTransform ></TranslateTransform>
</TransformGroup>
</local:UserControl2.RenderTransform>
</local:UserControl2>
</Grid>
</Window>


4.在主窗口的cs文件中添加动画效果及简单的逻辑:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

using System.Collections.ObjectModel;
using System.Windows.Media.Animation;

namespace CommonWPFApplication
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private double? _lastX=null;
private double? _lastY=null;
private bool _stopAnimated = false;

public MainWindow()
{
InitializeComponent();
}


private void Grid_MouseMove(object sender, MouseEventArgs e)
{
if (_stopAnimated)
{
return;
}

Point p = e.GetPosition(this);
if (_lastX == null )
{

_lastX = p.X;
_lastY = p.Y;

return;
}

if (e.LeftButton != MouseButtonState.Pressed)
{
return;
}

if (_lastX.HasValue)
{
if (Math.Abs(p.X - _lastX.Value) >= 100)
{

DoubleAnimation da = new DoubleAnimation(0, 800, TimeSpan.FromMilliseconds(250));

TranslateTransform tt = GetTranslateTransform(UserControlPart1);
if (tt != null)
{


da.Completed += (o1, e1) =>
{
UserControlPart1.Visibility = Visibility.Collapsed;
UserControlPart2.Visibility = Visibility.Visible;

DoubleAnimation da1 = new DoubleAnimation(-800, 0, TimeSpan.FromMilliseconds(250));

tt = GetTranslateTransform(UserControlPart2);
if (tt != null)
{
tt.BeginAnimation(TranslateTransform.XProperty, da1);
}
};

tt.BeginAnimation(TranslateTransform.XProperty, da);
}


_lastX = null;
_stopAnimated = true;
}
}


}

private TranslateTransform GetTranslateTransform(Control c)
{
TransformGroup tg = c.RenderTransform as TransformGroup;
foreach (var item in tg.Children)
{
if (item is TranslateTransform)
return item as TranslateTransform;
}

return null;
}
}
}


此时能完成你所述需求,当然这一切都需要仔细考虑重新封装设计。
aggier 2011-09-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sicr85 的回复:]
是不是类似android桌面切换的效果
[/Quote]


是的??怎么做啊??
aggier 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yuezaiziye 的回复:]

是的哦!!就是想让鼠标放上去轻轻的一划,就可以翻页的效果。
[/Quote]

效果有点像IPhone翻页的效果。
aggier 2011-08-10
  • 打赏
  • 举报
回复
是的哦!!就是想让鼠标放上去轻轻的一划,就可以翻页的效果。
fallincloud 2011-08-09
  • 打赏
  • 举报
回复
使用WPF的动画。
Sicr85 2011-08-09
  • 打赏
  • 举报
回复
是不是类似android桌面切换的效果
aggier 2011-08-08
  • 打赏
  • 举报
回复
<InkCanvas>

</InkCanvas>
用这个鼠标就是一个画笔了??没有其他效果啊…… ?
aggier 2011-08-08
  • 打赏
  • 举报
回复
想实现划屏滚动的效果!!可连续的以翻页!!
  • 打赏
  • 举报
回复

<Grid Width="500" Height="300">
<InkCanvas>

</InkCanvas>
</Grid>

当你在 <InkCanvas></InkCanvas>控件中,鼠标就可以随便在屏幕中划来划去了,不知道你要的划屏是不是指这个

13,347

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET技术前瞻
社区管理员
  • .NET技术前瞻社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧