c# – Silverlight – 第一次进入全屏幕在后台打开(FF,Chrome,而不是IE)(c#窗口全屏)
25-03-02
15
以上就是给各位分享c#–Silverlight–第一次进入全屏幕在后台打开(FF,Chrome,而不是IE),其中也会对c#窗口全屏进行解释,同时本文还将给你拓展4.Silverlight4.0添加鼠
以上就是给各位分享c# – Silverlight – 第一次进入全屏幕在后台打开(FF,Chrome,而不是IE) ,其中也会对c#窗口全屏 进行解释,同时本文还将给你拓展4.Silverlight 4.0添加鼠标右键菜单和Silverlight全屏模式的进入退出、asp.net – 在打开silverlight项目之前,您需要安装最新的Silverlight开发人员运行时、c# – Canvas单击Silverlight中的事件,而不是UIElement、Essential Silverlight翻译连载---第二章 Silverlight第一步 等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
c# – Silverlight – 第一次进入全屏幕在后台打开(FF,Chrome,而不是IE)(c#窗口全屏)
我没有找到答案,不是在这里或当我用Google搜索它.
情况是我们有一个带视频流的银光.如果我们使用代码启用全屏:Application.Current.Host.Content.IsFullScreen第一次将应用程序带到全屏时它会在后台打开(对于客户来说似乎没有任何反应).
它似乎将在下次记住它.
我们的替代方案是不启用它来禁用它,以便当窗口失去焦点时,它将从全屏中取出.
有没有办法解决这个问题,因为我们都希望在屏幕顶部全屏打开它(没有隐藏),并且有可能将它固定在那里. (因为我们的许多用户希望在另一台显示器上使用它并同时使用计算机)
我一直在考虑将它存储在应用程序存储中,因为它似乎在用户第一次将其移到前面时才会记住.但不知道如何做到这一点,也似乎有点hackish.
在IE中这是有效的,但当然这还不够好.
解决方法
为了使您的应用程序即使在没有聚焦的情况下也保持全屏,您必须将以下内容添加到您的应用程序:
Host.Content.FullScreenoptions = System.Windows.Interop.FullScreenoptions.StaysFullScreenWhenUnfocused;
当您切换到全屏模式时,这将生成权限提示,类似于IsolatedStorage配额提示.
对于在后台显示的应用程序,我只在MacOS上使用Safari体验过这个,我在Windows IE,FF或Chrome上从未遇到过这个问题.也许上面这一行有助于解决问题.
4.Silverlight 4.0添加鼠标右键菜单和Silverlight全屏模式的进入退出
继上节动态的添加Rectangle矩形框所讲。在实际应用中,我们动态添加矩形框,然后使用鼠标右键点击该矩形框,得到一个弹出窗口,再为此矩形框关联 一些实际信息。即可实现用户自定义的配置页面。本节将讲两个小技巧:一.鼠标右键菜单。二.Silverlight全屏模式。
一.使用鼠标右键菜单。在这里我们需要单独引入两个Dll文件。(右键项目名称-->“添加引用”-->寻找到System.Windows.Controls.Input.Toolkit.dll[可以从本文源代码中找到])
System.Windows.Controls;
System.Windows.Controls.Input.Toolkit;
MainPage.xaml代码如下
<UserControl x:Class= "SLRightMouseButton.MainPage"
xmlns:my="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="640" Height= "480" >
<Canvas x:Name = "LayoutRoot" >
<Rectangle x:Name = "ti" Width= "150" Height= "150" RadiusX= "5" RadiusY= "5" Fill= "Blue" ></Rectangle>
<my:ContextMenuService.ContextMenu>
<my:ContextMenu Name = "mymenu" >
<my:MenuItem Header="关联地区" Click= "MenuItem_Click" />
<my:Separator/>
<my:MenuItem Header="关联页面" Click= "MenuItem_Click" />
<my:Separator/>
<my:MenuItem Header="进入全屏" Click= "MenuItem_Click" />
</my:ContextMenu>
</my:ContextMenuService.ContextMenu>
</Canvas>
</UserControl>
在这里很明显是为名为ti的Rectangle矩形区域之内可以被右键点击,然后右键点击得到右键菜单“关联地区”“关联页面”“进入全屏”三项。这三个项目都加在到同一个点击事件MenuItem_Click中处理。
MainPage.xaml.cs文件关键代码处理MenuItem_Click事件代码如下
/// <summary>
/// 鼠标右键选择相应的项的事件
/// </summary>
/// <param name = "sender" ></param>
/// <param name = "e" ></param>
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
MenuItem menuItem = (MenuItem)sender;
switch (menuItem.Header.ToString())
{
case "关联地区" :
MessageBox.Show("关联地区" );//在此可以弹出一个窗口显示关联地区的子窗口。然后选择相应的数据,为此Rectangle关联地区
break;
case "关联页面" :
MessageBox.Show("关联页面" );//在此可以弹出一个窗口显示关联页面的子窗口。然后选择相应的数据,为此Rectangle关联页面
break;
case "进入全屏" :
menuItem.Header = FullScreens(menuItem.Header.ToString());//调用FullScreens函数来设置当前是否全屏,以及获取下次点击鼠标右键获得的右键菜单Header字。
break;
case "取消全屏" :
menuItem.Header = FullScreens(menuItem.Header.ToString());
break;
default :
break;
}
mymenu.IsOpen = false ;//右键菜单关闭
}
/// <summary>
/// 是否进入全屏
/// </summary>
/// <param name = "IsScreen" >全屏参数</param>
/// <returns ></ returns >
private string FullScreens(string IsScreen)
{
Application.Current .Host.Content.IsFullScreen = !Application. Current .Host.Content.IsFullScreen;
if (IsScreen == "进入全屏" )
{
IsScreen = "取消全屏" ;
}
else
{
IsScreen = "进入全屏" ;
}
return IsScreen;
}
}
在代码中 使用MenuItem menuItem = (MenuItem)sender;捕捉到触发本事件的对象,然后判断当前对象的Header的值是多少?然后进行相应的处理就可以了。值得注意的是这里牵扯到了我们今天需要将的第二个小知识点。
二.Silverlight的全屏模式的进入。
Application.Current.Host.Content.IsFullScreen = !Application.Current.Host.Content.IsFullScreen; 就是这句简单的代码将可以让你的Silverlight程序进入或者退出全屏模式。
本实例源码基于Silverlight 4.0和VS 2010开发。
本小节的源码附上点击 http://files.cnblogs.com/chengxingliang/SLRightMouseButton.rar
另外所需DLL下载点击:System.Windows.Controls.Data.Input.rar
asp.net – 在打开silverlight项目之前,您需要安装最新的Silverlight开发人员运行时 当我在vs2010中打开silverlight项目时,它会向我显示错误的对话框
“在打开silverlight项目之前,您需要安装最新的Silverlight开发人员运行时”
并提供链接“go.microsoft.com/fwlink/?LinkId=146060”,而我已经安装了这个silverlight版本.
请帮我解决这个问题.
解决方法
我有类似的问题.
每次我尝试访问链接并安装东西时,我都会得到相同的信息.
但是,我问同事,他们建议我按以下顺序安装:
>卸载所有名称为“Silverlight”的内容 >安装“Silverlight_5_Toolkit_December_2011.msi” >安装“silverlight_5_sdk.exe” >安装“Silverlight5_Tools_SP1.exe” >安装“Silverlight_Developer_x64.exe”
我在公司里下载了所有的软件包,所以你需要自己在网上找到它们.从我所看到的,它们都是可用的.唯一的问题是安装方向.这个帮助了我.
c# – Canvas单击Silverlight中的事件,而不是UIElement
我有一个画布对象,我在它上面洒了很棒的控件.我正在使用ScaleTransform对象来缩放画布,以便我可以放大/缩小.
我已经连接了控件,以便我可以拖动它们,并且通过使用MouseLeftButtonDown,MouseLeftButtonUp和MouseMove,拖放效果很好.现在,我想在仅单击Canvas时启用事件.当我为canvas对象读取docs时,我看到MouseLeftButtonDown事件仅在它超过UIElement时触发.
Occurs when the left mouse button is pressed (or when the tip of the stylus touches the tablet PC) while the mouse pointer is over a UIElement. (Inherited from UIElement.)
不幸的是,我想要相反的行为.我想知道什么时候鼠标在没有任何控件的情况下点击画布上的鼠标.由于我是Silverlight的新手,我可能会以错误的方式做到这一点.有什么我忽略了吗?我是以错误的方式来做这件事的吗?我正在寻求一些帮助,也许还有很多方向.
解决方法
我不是Silverlight大师,但是你可以在Canvas中添加一个透明的UIElement,在所有其他UIElements之下,并使用它来确定用户是否在任何其他拖放元素之外点击了.
@H_301_27@
Essential Silverlight翻译连载---第二章 Silverlight第一步
第二章 Silverlight第一步
关于Silverlight
一些人把Silverlight技术称为“Flash杀手”,但我不能确信这是否真实。无论如何,两者非常相似。无论是Adobe公司的Flash(以前是Macromedia公司的Flash)还是Silverlight都作为浏览器插件。两者都支持矢量图形,声音和视频回放,动画和脚本支持。
两者的技术基础是不一样的。Flash使用不完全二进制格式,而Silverlight是基于WPF的。在被命名为Silverlight之前,它的开发代号为WPF/E(
Windows Presentation Foundation Everywhere )。Silverlight可以到处运行(至少理论上是这样)得感谢好的浏览器支持。
实际上兼容性是浏览器插件的关键问题。在写这本书时,Silverlight插件已经支持Windows平台(这没什么好说的)下的两大浏览器:Microsoft Internet Explorer和Mozilla Firefox
(译者注:火狐浏览器)。 还支持苹果机的Mac OS X操作系统使用的两个浏览器Safari和Mozilla Firefox。按照微软的说法,对其他平台的支持正在研究之中,但Windows在桌面操作系统中拥有如此高的市场占有率,而Mac OS X位列第二,所以优先支持这两个浏览器。
Silverlight需要运行在Windows XP或更高的版本上;但1.0版本有可能在某一时间升级为支持Windows 2000的版本。在未来版本中也将增加对Opera浏览器的支持;当前它是第三大浏览器,拥有相对较少但非常忠实的用户。
提示:专业的绘图软件如
Adobe的Photoshop使用了几个复杂的算法来保证当图像尺寸改变时的质量损失(特别当缩小图像时);然而,当图像放大时,对图像的影响还是很明显的。
Mono
项目(
http://www.mono-project.com/
),因为开源并运行
.NET
而闻名,它可以在
Linux
平台的
Firefox
浏览器下运行开源的
Silverlight
端口。这个项目被称为
Moonlight
(请见
http://www.monoproject.com/Moonlight
)。
http://www.mono-project.com/MoonlightShots
网站也有一些最新的成果的一些效果图(图
2-1
)。微软也宣布将联合
Novell
(译者著:一种操作系统)
派出一个小组支持
Moonlight
项目并把它移植到
Linux
下。
但除了做为浏览器插件之外,
Silverlight
还有什么过人之处呢?这个插件的最主要部份是支持
WPF
子集(详情请见第
4
章)的图形子系统。它还包含了表现视频和音频的代码(请参考第
7
章了解更多关于多媒体方面的内容)。
Silverlight
的体系非常复杂(请参考
http://msdn2.microsoft.com/en-us/library/bb404713.aspx
)。主要可以分为两大块,表现层负责处理
UI
,包括动画,文字渲染和音频
/
视频回放。插件被整合在浏览器内使得这些内容可见,并且也可以通过
JavaScript DOM
访问。最后,使用
JavaScript
代码(如果使用
ASP.NET AJAX
框架就更好了)
Silverlight
应用程序就可以象
web services
一样访问服务器
API
了。图
2-2
(译者注:很遗憾,本书并不存在我们想要的这张图,这里是一个错误)
展现了这个体系。
Silverlight1.1
将对这些做进一步地扩展,并把
.NET Framework
的一部份整合进
Silverlight
内。
安装Silverlight开发系统
事实上,使用一个文本编辑器便能开发
Silverlight
应用程序,便使用一个“真实”的开发环境能让您事半功倍。最明智的选择是使用微软所提供的开发工具。对于代码编写人员来说,
Visual Studio 2005
是当前开发
Silverlight
的最佳选择。无论是完全版本(标准版,专业版,团队开发版)还是免费版的
Visual Web Developer Express Edition
都可以胜任。如果您使用付费版本,将获得项目模板支持,那是再好不过。本书将使用
Visual Studio 2005
标准版。无论什么时候,免费的
Express
版本和付费版本都将有所不同,这尤其重要,它使得用户不会遗漏任何重要信息。
在
Windows XP
或更高版本上安装
Visual Studio
或
Visual Web Developer
无需什么必备条件。您甚至不需要网页服务器,因为
IDE
已经集成了一个。如果可能,可以安装一个微软的
IIS
(
Internet information Services
)。它隐藏在【
Software
】菜单(译者注:没用过
Vista
,不知道
Software
所对应的是不是【软件】菜单)
下的控制面板内(
Vista
操作系统)。如图
2-2
所示,可以在“
turn Windows features on and off
”那找到它。(译者注:哪位使用
Vista
的兄弟帮忙看看这句话的中文是什么)
在安装
Visual Studio 2005
时,请确保选中了“
Visual Web Developer
”这个选项,如图
2-3
所示。否则,网页编辑器将不会在
IDE
内出现。你需要创建网站项目,尽管
WPF
是一项桌面技术,但
Silverlight
是一项网页技术。如果您希望使用
Visual Studio 2005 Express Edition
,可以到以下网址下载一个网络安装版:
http://msdn.microsoft.com/vstudio/express/vwd/download/
。
无论您安装的是
Visual Studio
的哪个版本,都应该立即安装一些有用的补丁(在写本书时最新的补丁是
Service Pack 1
),
Windows Vista
用户必须安装一个专门针对
Vista
用户的升级补丁。在安装期间,需要注意
Vista
的一个很出名的软件运行问题,解决方法是安装所有可用的补丁,如图
2-4
所示。
大概给微软产品安装最新补丁的最便利的方法就是使用
Windows
自动更新机制。微软的软件更新是一个长期服务。
Windows
自动更新不但给
Windows
和它的核心组件如
Internet Explorer
打补丁,还给其它的一些微软产口包括
Office
,
Visual Studio
,和
sql Server
打补丁。如图
2-5
所示。
如何激活软件的升级取决于您所使用的
Windows
版本。如果是
Windows Vista
之前的
Windows
操作系统,只需要访问以下升级网站(
http://update.microsoft.com/microsoftupdate/
)进行升级。如果您使用的是
Windows Vista
,那么单击【开始】菜单,选择【
Get updates for more products
】链接(译者注:请哪个使用
Vista
的兄弟帮翻译下这个菜单名
)打开如图
2-6
所示窗口。下次您搜索升级时,便可获得
Visual Studio
和其他微软产口的升级补丁。
提示:在安装完
Visual Studio 2005的Server Pack 1后,Vista用户需要再次运行微软的升级以获得一个针对当前操作系统的Visual Studio补丁。
本章未完,待续
关于c# – Silverlight – 第一次进入全屏幕在后台打开(FF,Chrome,而不是IE) 和c#窗口全屏 的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于4.Silverlight 4.0添加鼠标右键菜单和Silverlight全屏模式的进入退出、asp.net – 在打开silverlight项目之前,您需要安装最新的Silverlight开发人员运行时、c# – Canvas单击Silverlight中的事件,而不是UIElement、Essential Silverlight翻译连载---第二章 Silverlight第一步 等相关内容,可以在本站寻找。