![]() |
1
13
我经历过的两件事是: 跨域策略文件要使Silverlight与托管在其他域上的Web服务一起工作,服务器需要 a cross domain policy file . 这可以采用两种格式:
我不能让前者正常工作,但后者正常工作(flash使用第二个,而我相信第一个是特定于ASP的,尽管我不能让它在ASP.NET 2.0服务器下工作,所以它可能是3.5特定的)。 组合框下拉列表调整大小Silverlight2.0组合框控件首次显示时只调整下拉区域一次大小。因此,它的大小是以列表中的初始项目为基础的。这意味着即使列表增加到200,2个项目也会给你一个2个项目的高下拉列表。唯一的解决方法似乎是在每次项更改时用一个全新的控件替换组合。 请注意,将height属性或maxheight属性设置为一个值,该值将导致在下拉列表的初始显示中出现列表外的项目,这将导致没有垂直滚动条,因此无法访问列表中的项目。我找到的唯一解决方案是使用MinHeight属性,使其至少具有适合所有用途的合适高度,如果项目超过最小高度,就让它更大。 此外,当您调整浏览器窗口的大小时,无论是否使用minheight,然后下拉组合列表或在可见时调整大小,这都会不可逆转地减小下拉列表的大小。 更新Here is a really nice solution to the combo problem 多亏了 markti . |
![]() |
2
8
组合框怪异有一件事 Jeff Yates mentioned in his reply 这是组合词的怪异之处——我亲自见过,也见过另一个非常非常令人恼火的问题。如果您试图从按钮的Click事件的事件处理程序中更改组合框中的项目,您将收到一条神秘的错误消息,我目前无法想到。我的解决方案是和Jeff的解决方案一样,删除组合框,构建一个新的组合框,用更改的项集填充该组合框,然后将其添加回包含该组合框的面板。 没有elementname绑定Silverlight没有类似于WPF的elementName绑定功能。 This post 有一个很好的解决方法,对我来说非常有效。 不支持鼠标滚轮事件本机不支持捕获鼠标滚轮事件。 This post 提供使用浏览器事件的解决方案。 在UserControls上没有卸载的事件有一个已加载的事件,但没有卸载-如果您想从屏幕上删除一个控件并运行一些卸载逻辑,您需要以自己的方式来执行此操作。我有一个不可下载的接口,我从中派生出我的控件,它需要运行卸载逻辑,并在合适的时间手动调用该逻辑上的方法。 最后, this post 与WPF相比,它有一些关于Silverlight缺少什么的好信息。 |
![]() |
3
7
我错过了一个双击事件。我很惊讶它不在里面,一直在寻找智能感知列表:通过在上面创建一个黑客来解决它,但这不是一个解决方案。 |
![]() |
4
6
我发现调试支持非常脆弱。它曾经为我工作过一次,但从那以后,无论我做什么,都没有。我认为只有通过使用Silverlight ASP支持的ASP.NET 3.5站点进行调试时,它才能正常工作。
解决了的问题在于使用谷歌Chrome。因为Google Chrome在自己的进程中托管Silverlight,所以调试器找不到它。如果您使用IE7进行调试,它会很好地附加,但是如果您使用chrome进行调试,您必须手动附加到chrome下的适当的Silverlight任务,然后它才能工作。 多亏了 mattmanser for the clue 关于问题可能是什么。 |
![]() |
5
4
最近让我想到的一个问题是没有LayoutTransform属性(尽管有一个renderTransform属性)。因此,不能应用转换并使相邻元素遵守控件的“新空间要求”,这将导致它与其他元素重叠或具有空白。 这对我来说是个问题,因为我希望滚动查看器中的可滚动区域随转换而改变。我可以绕过它,但是如果你试图旋转或者做另一个变换,这个过程会更加困难。 |
![]() |
6
4
使用IE6和承载Silverlight应用程序的网站已启用压缩(HTTP 1.1头文件) 每当您调用一个Web服务时,它都会失败,即使fiddler显示正在发送的请求和成功到达的响应。 |
![]() |
7
4
Web请求上没有可用的凭据
这个
|
![]() |
8
4
httpwebrestone只能有两个状态代码中的一个
这意味着所有其他错误都被映射到404,这非常烦人。我不知道重定向是如何工作的(我希望它们被自动跟踪…) http://msdn.microsoft.com/en-us/library/system.net.httpstatuscode(VS.95).aspx |
![]() |
9
4
事实上,在短时间内有这么多不同的版本。 好 -令人沮丧的事情会很快得到解决。例如,鼠标滚轮,右键单击-在Silverlight4中固定。 坏的 -如果你是新来的,你就不知道文件中的“黑客”是否仍然是必要的。我刚开始使用Silverlight4,发现了大量的教程和帮助——但我不知道它们是最新的还是最好的方法。 |
![]() |
10
3
不久前,我在Silverlight2.0中做了一个项目,该项目是使用TDD和MVP驱动的。我的服务引用位于单独的程序集中,因此视图不需要知道模型。我知道了 服务引用.clientconfig 需要在视图程序集中的文件! 如果添加服务引用,则会生成此文件。我们添加了一个WCF Web服务,但我是Silverlight的新手,因此不知道Silverlight应用程序是编译并打包为XAP的。 如果你 服务引用.clientconfig 文件不在此Xap中,您有问题。 所以我有两分钱的价值。我在Silverlight论坛上发布了一段时间,似乎我不是唯一一个应用了这种方法的人。 |
![]() |
11
3
哦,有很多东西。让我们从3个浏览器开始: 唯唯诺诺 :Silverlight对象无法缩放以适应浏览器窗口。 解决方法:将此置于标签之间:
也要注意,IE会让你的开发人员网站在本地主机和你的应用访问其他域,而其他浏览器不会。 游猎 :如果使用自定义响应头(这对于在数据服务中进行高效分页很有用),Safari可能会更改头名称破坏应用程序的情况。 可见性问题 更改折叠的可见性组件的属性时存在各种各样的问题,通常情况下,它们不会在不可见的情况下注册更改,而必须在使更改可见时再次注册。SL团队似乎没有彻底测试当您使组件不可见和可见时会发生什么。 如果遇到意外的间歇性参数异常,很可能是因为在按钮的Click事件中有代码,使按钮本身(或其父级)不可见。显然,一些内部代码在click事件之后运行,该事件期望按钮可见。通过在Click事件中创建一个短的(例如100毫秒)DispatcherTimer,并在Tick事件中设置不可见的按钮来解决这个问题。 DependencyObject/DependencyProperty问题 如果你习惯了这些在WPF中的工作方式,那么它们在Silverlight中会被彻底破坏。如果数据对象是DependencyObjects,则会出现两个问题。一个是,在sl dependencyproperties中,没有内置的更改通知-如果希望它们更新绑定,则需要使对象实现inotifypropertieschanged。另一种方法是,如果绑定到DependencyObjects集合,将获得非常强大的效果。您需要在控件层次结构的下方使用一个类-我从frameworktemplate继承了这个类。因此,我建议您的数据对象如下所示:
变流器 没有多值转换器,也没有绑定。我知道这些没有解决办法。 |
![]() |
12
3
OpenFileDialog/独立存储 为了让应用程序最初使用或增加本地存储,您必须指定需要多少空间,然后Silverlight会提示用户是否要允许更改。一切都很好。但有一个陷阱:如果打开一个文件对话框,在这之后就没有办法获得更多的存储空间。在我的场景中,用户选择了个文件,我对它们进行了处理,然后计算出保存处理过的文件需要多少空间。但由于这个问题,我不得不猜测该文件的最大大小,并在此基础上请求存储。如果文件更大,用户将不得不重新执行整个过程。 布局系统 这真是糟透了。在显式设置元素的大小之前,所有大小属性都会得到NaN。您可以钩住每一个调整大小的事件,并在那里得到值,但在大多数情况下,您不能只要求一个高度或宽度,并得到您想要的。 无布局转换 提到 above 特拉维斯 |
![]() |
13
2
调试可能很棘手,如果它不起作用,可能是因为您在进程上附加了错误的代码类型。尝试手动附加到进程,并确保已选择“Silverlight代码”而不是“托管代码”。从那时起,它可能会一直工作。 |
![]() |
14
2
消息框
我在和
显示弹出窗口时阻止用户界面访问…
在搜索互联网之后,很明显我需要使用基于
弹出窗口下面的用户界面仍然处于活动状态,这意味着周围的选项卡可以让您访问您试图隐藏的控件。为了缓解这种情况,我首先尝试通过获取
事实证明,要达到我想要的效果,最简单的方法是将焦点设置为弹出对话框中的某个内容,并设置
|
![]() |
15
1
不支持模式弹出窗口 解决方案-创建一个扩展整个画布并将不透明度设置为.05的用户控件 如Scottgu的示例Silverlight应用程序所示 http://weblogs.asp.net/scottgu/pages/silverlight-2-end-to-end-tutorial-building-a-digg-search-client.aspx 不支持数据集 解决方案-使用可以将XML读取到通用列表中以进行数据绑定的LINQ to XML 不支持母版页 解决方案-创建父XAML页,并使用用户控件创建应用程序的其余部分,以便在它们之间进行切换
在将Ajax工具包与ASP.NET Silverlight标记一起使用时,会出现命名空间问题。
|
![]() |
16
0
Silverlight在调试时吞下了如此多的异常,这让人沮丧。 |
![]() |
17
0
控件由资源作为父级…
在资源中声明控件,然后尝试将其作为父级
|
![]() |
Bigeyes · 如何在MVVM模式中添加行? 8 年前 |
![]() |
User9898 · 悬停回到原始颜色时为什么选择 9 年前 |
![]() |
Huma Ali · WCF已完成事件中的异常处理 9 年前 |
![]() |
Nerd in Training · 文件副本发布错误 10 年前 |