我有一个Windows Phone 7应用程序,我经常看到"怪异"的UI故障,让我AGES调试.这是一系列的问题,比如控件似乎有额外的余量,滚动条没有出现,动画看起来真的很小,整个页面向下滚动,组合框项目偏移等等.
我很高兴承认它可能是我 - 但你如何调试这样的UI错误?我知道PC Silverlight应用程序有Silverlight Spy.Windows Phone 7有这样的东西吗?
任何调试技巧非常感谢.
我正在编写一个Windows Phone 7应用程序,我正在寻找一种方法来获取一个独特且不变的设备ID,我可以用它来识别设备,从而识别用户(因为Microsoft不允许您访问用户Windows Live Id).任何人都知道这是否可行?特别有兴趣了解id是否a)独特且b)不变.
谢谢,
在我的Windows Phone 7应用程序中,我有一个单行文本框.当用户按下{ENTER}时,我想接受文本框值并将文本框切换回正常的非编辑模式.
基本上,有没有办法以编程方式取消编辑文本框?
我已经尝试将视觉状态管理器强制进入正常模式,该模式确实改变了视觉样式,但文本框仍处于编辑模式,并且仍然显示屏幕键盘.
VisualStateManager.GoToState(
this.MyTextBox,
"Normal",
true);
VisualStateManager.GoToState(
this.MyTextBox,
"Unfocused",
true);
Run Code Online (Sandbox Code Playgroud)
还尝试以编程方式选择父控件,但似乎也不起作用.
我想我必须错过一些简单的事情,有人必须做了一百万次 - 任何帮助都非常感激.
谢谢,
更新:我试图将焦点设置为另一个控件,但这不起作用,SIP键盘永远不会消失.
但我用另一种方法想出来了.诀窍是使用IsReadOnly标志.当失去焦点或输入被按下时,我将控件设置为只读更新样式.我所要做的就是更新我的视觉效果,使它看起来正确,现在效果很好.
对于它的价值,我的代码现在看起来像这样:
private void MyTextBox_GotFocus(object sender, RoutedEventArgs e)
{
this.MyTextBox.IsReadOnly = false;
this.MyTextBox.SelectAll();
}
private void MyTextBox_LostFocus(object sender, RoutedEventArgs e)
{
this.MyTextBox.IsReadOnly = true;
}
private void MyTextBox_KeyUp(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
this.MyTextBox.IsReadOnly = true;
VisualStateManager.GoToState(
this.MyTextBox,
"ReadOnly",
true);
VisualStateManager.GoToState(
this.MyTextBox,
"Unfocused",
true);
VisualStateManager.GoToState(
this.MyTextBox,
"Valid",
true);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在编写一个需要知道位置的Windows Phone 7应用程序.具体来说,我想要一些(c#)代码在手机进入特定位置(例如0.5英里)的(固定)范围内时运行.我有内存中物理位置的所有lat/long数据.我将使用Geo Coordinate Watcher类来获取设备的当前坐标.现在唯一的技巧是计算用户是否在任何位置的范围内.
谢谢!
更新:正如这里所承诺的那样,使用球面定律法计算距离的小C#函数.希望它可以帮助别人.注意:我正在编写Windows Phone 7应用程序,因此使用了GeoLocation类.如果你正在使用"常规"c#,那么你可以改变函数来接受函数需要的两个坐标对.
internal const double EarthsRadiusInKilometers = 6371;
/// <summary>
/// The simple spherical law of cosines formula
/// gives well-conditioned results down to
/// distances as small as around 1 metre.
/// </summary>
/// <returns>Distance between points "as the crow flies" in kilometers</returns>
/// <see cref="http://www.movable-type.co.uk/scripts/latlong.html"/>
private static double SpericalLawOfCosines(GeoCoordinate from, GeoCoordinate to)
{
return ( Math.Acos (
Math.Sin(from.Latitude) * Math.Sin(to.Latitude) +
Math.Cos(from.Latitude) * Math.Cos(to.Latitude) *
Math.Cos(to.Longitude …Run Code Online (Sandbox Code Playgroud) 我正在编写一个Windows Phone 7应用程序,并有一个图标(图块图标和应用程序图标).图标中间有我的小徽标,周围是透明背景.但是当我在手机模拟器上看到图标时,背景是黑色的.无论选择什么主题(浅色或深色),它都会保持黑色.
我希望透明的背景会被用户选择的Accent Color和手机上的所有其他图标(即设置等)填充,但事实并非如此.
我是否必须做一些特殊的事情以获得透明背景?谢谢!
我想将我的WP7应用程序国际化.我有本地化的资源,SupportedCultures标签等.但我想知道谁负责设置Thread.CurrentThread.Current*Culture?当用户在设备上更改语言或是否必须检测设备语言/区域并相应地设置线程文化时,这是为我设置的吗?
谢谢!
在WPF中,我想设置一个控件宽度,比如它的父控件ActualWidth属性的97%.我怎样才能做到这一点?
我有一个有几页的应用程序.当我在页面之间移动时(使用NavigationService),我有一个动画使文本飞出来 - 想想标准WP动画或Zune客户端.
动画本身看起来很合理,但问题似乎是动画结束和加载新页面之间的差距.当所有元素完成飞出并显示新页面时,似乎有轻微的延迟.
它使我的页面过渡感觉有点笨重.
如何在转换完成的瞬间显示目标页面以避免这种情况?
fwiw - 我只是使用导航服务在页面之间导航.
this.NavigationService.Navigate(new Uri("/SomePage.xaml", UriKind.Relative));
Run Code Online (Sandbox Code Playgroud) 我正在编写一个Windows Phone 7应用程序,并希望在页面加载时以编程方式访问我的应用程序栏按钮.但这些似乎总是空的.我尝试过访问以下事件中的按钮:
StateChanged事件处理程序Loaded各个按钮上似乎也没有事件.我在这里违反了规定吗?为什么我不能用c#访问应用程序栏按钮?