我正在寻找在WPF应用程序中使用的"安全"字体系列列表 - 应该安装在能够运行WPF的所有客户机上的字体系列.Silverlight有一个明确定义的列表(在MSDN上列出它有25种字体,如Arial,Arial Black,Calibri等).
是否有这样的WPF列表或我是否必须嵌入自定义字体以确保应用程序的所有用户都能看到相同的字体类型?
我想从可视化树中删除FrameworkElement.由于FrameworkElement具有Parent属性,因此通过从那里删除它来解决此问题是显而易见的:
FrameworkElement childElement;
if(childElement != null && childElement.Parent != null) // In the visual tree
{
// This line will, of course not complie:
// childElement.Parent.RemoveFromChildren(childElement);
}
Run Code Online (Sandbox Code Playgroud)
问题是FrameworkElement的Parent属性是DependencyObject,它没有子节点的概念.所以我唯一可以看到的问题就是通过强制转换父级来查看它是否是边框,面板等(具有子级概念的元素)并从那里删除它:
FrameworkElement childElement;
if(childElement != null && childElement.Parent != null) // In the visual tree
{
if(childElement.Parent is Panel)
{
(childElement.Parent as Panel).Children.Remove(childElement );
}
if(childElement.Parent is Border)
{
(childElement.Parent as Border).Child = null;
}
}
Run Code Online (Sandbox Code Playgroud)
显然,这不是一个非常灵活的解决方案,根本不是通用的.有人可以建议一种更通用的方法从视觉树中删除元素吗?
Silverlight 3 CacheMode在元素上引入了参数.目前唯一支持的格式是BitmapCache.在XAML中,此值可以设置如下:
<Image CacheMode="BitmapCache" Source="MyImage.png"></Image>
Run Code Online (Sandbox Code Playgroud)
我想在运行时做同样的事情,但到目前为止失败了,以下两个例子都不起作用
Image image;
image.CacheMode = ?? // Could not find any enum to set it to
image.CacheMode.SetValue(CacheModeProperty, "BitmapCache"); // Does not work
Run Code Online (Sandbox Code Playgroud)
我正在寻找有人提供动态创建元素的代码或解决方法(例如Image)并将其设置CacheMode为BitmapCache.
我正在尝试以编程方式填充ComboBox.我正在创建ComboBoxItems并且想要设置他们的文本(最终用户可见的文本)及其值(我在用户选择它后将在后台处理的对象).
但是,ComboBoxItem似乎只有一个成员用于这两个要求:Content变量.同时这不符合我的需要,因为我想区分文本和值属性,并希望在没有数据绑定的情况下这样做.有没有可行的解决方案来实现这一目标?
我目前的代码如下:
ComboBox comboBox;
ComboBoxItem item = new ComboBoxItem();
item.Content = "First Item";
item.Value = 1; // Does not work, no such member as Value!
comboBox.Items.Add(item);
Run Code Online (Sandbox Code Playgroud) 我正在寻找创建一些Silverlight单元测试.我首先下载了Silverlight Toolkit并查看了那些都是基于Silverlight Unit Testing Framework构建的单元测试.
但是,似乎测试类结构在源代码中相当复杂,我不想重新编写该包中定义的测试类(例如,ControlTest-> FrameworkElementTest-> TestBase-> SilverlightTest继承链是定义的,只有最后一个类都在Silverlight Toolkit中定义.
我正在寻找使用Silverlight单元测试框架实现最简单的单元测试实现的代码示例(例如执行Assert.IsTrue(true)).
我再次为一个对你们所有人都很简单的问题道歉.我对Silverlight幕后的内容知之甚少.
我有一个图表应用程序(Visiblox),我用它作为滚动范围每20ms更新一次,添加和删除一个点.在伪代码中:
List<Point> datapoints= new List<Point>();
Series series = new Series(datapoints);
void timer_tick(){
datapoints.Add(new Point);
datapoints.RemoveAt(0);
// no need to refresh chart, it does refresh automatically
}
Run Code Online (Sandbox Code Playgroud)
在此图表工具中运行6系列时,它开始显示有点迟缓.将刻度线更改为10毫秒没有任何区别,图表以相同的速度更新,因此似乎20ms是速度限制(UI或图表?).
我试过CompositionTarget.Rendering并得到了相同的结果:在20ms以下,速度没有差别.
然后我意外地启用了两个并且速度加倍.所以我测试了多个线程(2,3,4),速度加倍,三倍和四倍.这还没有锁,因为我甚至不知道生成锁定需要什么进程,但没有数据损坏和内存泄漏.
我的问题是为什么20ms的低速图表不能在10ms运行,但在多线程时速度非常快?UI刷新过程是否运行得更快?图表计算加倍了吗?或者单个DispatcherTimer的执行速度是否有限制?
谢谢!
编辑:我有嵌入式编码的背景,所以当我想到线程和时序时,我立即想到在硬件中切换一个引脚并连接一个范围来测量进程长度.我是C#中的线程新手,没有用于连接范围的引脚.有没有办法以图形方式查看线程时序?
我正在讨论是否隐藏或不隐藏Windows Phone 7应用程序中的系统托盘.我没有找到关于这个问题的任何一般性建议 - 官方Windows Phone设计指南根本没有解决这个问题 - 除了Jeff Wilcox的博客文章,他建议他个人喜欢在应用程序中看到系统托盘.我想从其他Windows Phone开发人员那里获得有关此问题的一般建议.
显示系统托盘的一些原因是
隐藏它的原因是
我很欣赏这方面的所有建议.
我的公司正计划开发Windows Phone 7.然而,我们的构建服务器运行Windows Server 2008.根据Windows Phone SDK发行说明,我已经读过,SDK不支持Windows Server.
有没有人对是否有可能的解决方法让Windows Server 2008计算机构建Windows Phone 7项目有任何经验?
更新:我有兴趣在WS 2008上构建,因为我们正在谈论一个拥有更大团队的项目,其中持续集成和集中构建是必不可少的.我希望我们不必为此任务设置额外的Windows 7构建服务器.
我想在使用Silverlight单元测试框架运行测试时记录输出测试数据.我可以通过创建一些元素并将其写在上面来解决它,但这感觉就像一个被黑客攻击的方式.在测试期间是否有任何框架支持的输出方式?
可能重复:
如何制作或使用WP7的标准图像查看器
我正在寻找一种与WP7在相机中心非常相似的控制器.它就像一个枢轴控件,除了在屏幕右侧可以看到下一个图像的一小部分.
在开始编写我自己的控件之前,我想知道是否有人知道存在这样的控件并且它的代码是共享的.
silverlight ×6
c# ×4
testing ×2
unit-testing ×2
wpf ×2
combobox ×1
font-family ×1
fonts ×1
image-viewer ×1
key-value ×1
pivot ×1
system-tray ×1
usability ×1
visiblox ×1
visual-tree ×1