本文的目的是介绍C#-在WindowsPhone7中创建一个简单的测验应用的详细情况,特别关注创建一个测试类的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解C#-在W
本文的目的是介绍C#-在Windows Phone 7中创建一个简单的测验应用的详细情况,特别关注创建一个测试类的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解C#-在Windows Phone 7中创建一个简单的测验应用的机会,同时也不会遗漏关于c# – ListBox VirtualizingStackPanel.VirtualizationMode =“回收”在Windows Phone 7.5中不起作用、c# – 在Windows 10中部署Windows Phone 8.1应用程序时找不到IpOverUsbSvc、c# – 在Windows Phone 8.1 / WinRT中设置AutoFlash、c# – 在Windows Phone 8.1 Universal Store App中触发警报?的知识。
本文目录一览:- C#-在Windows Phone 7中创建一个简单的测验应用(创建一个测试类)
- c# – ListBox VirtualizingStackPanel.VirtualizationMode =“回收”在Windows Phone 7.5中不起作用
- c# – 在Windows 10中部署Windows Phone 8.1应用程序时找不到IpOverUsbSvc
- c# – 在Windows Phone 8.1 / WinRT中设置AutoFlash
- c# – 在Windows Phone 8.1 Universal Store App中触发警报?
C#-在Windows Phone 7中创建一个简单的测验应用(创建一个测试类)
我需要一些帮助才能开始使用Windows Phone 7上的简单测验应用程序.
用户将不得不猜测图中所示城市中给定地点的名称是什么.
屏幕上将出现一幅图片,在它的下方将有4个答案,如果用户单击正确的答案,则将被告知正确的答案,然后他可以转到另一个问题,与不正确的回答情形相同.我需要跟踪正确的答案.因此,我需要有关如何设置此类问答游戏的帮助或指导.我需要所有随机生成的问题(每个问题4个随机答案),并且说每场比赛我将有10个问题.
我正准备有一份清单,该清单可以保存我的城市地点
cityList = new List<string>();
cityList.Add("answer1");
cityList.Add("answer2");
cityList.Add("asnwer3");
cityList.Add("answer4");
而且我被困住了,任何在做过类似事情之前的人都请帮忙,谢谢
解决方法:
这样的事情.我在答案框中输入了它,它可能不会完全按照原样显示,但是一定会帮助您入门.
class Question
{
string ImageURI { get; set; }
string Text { get; set; }
ObservableCollection<Answer> Answers { get; set; }
Answer CorrectAnswer { get; set; }
bool MakeGuess(Answer a) { UserGuess = a; if (a.Equals(CorrectAnswer)) { return true; } return false; }
bool AnsweredSuccessfully { get { return UserGuess != null && UserGuess.Equals(CorrectAnswer); } }
Answer UserGuess { get; set; }
}
class Answer
{
string text { get; set; }
}
class Game
{
public Game()
{
Questions = new ObservableCollection<Question>();
for (int i = 0; i < 10; i++) { Questions.Add(GenerateQuestion()); }
}
public Question GenerateQuestion()
{
Question q = new Question();
q.ImageURI = your link to image//;
q.Text = your image text//;
q.Answers = new ObservableCollection<Answer>();
q.CorrectAnswer = the correct answer//;
q.Answers.Add(CorrectAnswer);
for (int i = 0; i < 5; i++) { q.Answers.Add(GenerateAnswer(q.CorrectAnswer)); }
return q;
}
public Answer GenerateAnswer(Answer ignore)
{
List<Answer> answers = DataStore.Answers;//go to your main list of answers.
Random rand = new Random();
Answer a = answers[Random.Next(0,answers.Size())];
while (a == null || a.Equals(ignore) { a = answers[Random.Next(0,answers.Size())];}
return a;
}
public ObservableCollection<Question> Questions { get; set; }
}
c# – ListBox VirtualizingStackPanel.VirtualizationMode =“回收”在Windows Phone 7.5中不起作用
这是相关的XAML:
<ListBox ItemsSource="{Binding EpisodeRows}" toolkit:TiltEffect.Suppresstilt="True" Margin="12,0" VirtualizingStackPanel.VirtualizationMode="Recycling"> <ListBox.ItemTemplate> <DataTemplate> <Grid VerticalAlignment="Top" Height="111" VirtualizingStackPanel.VirtualizationMode="Recycling" > <StackPanel Orientation="Horizontal" Visibility="{Binding TilesVisibility}"> <landerGame:LevelTileUserControl PartText="{Binding PartText_1}" scoreText="{Binding scoreText_1}" Star1Visibility="{Binding Star1Vi <landerGame:LevelTileUserControl PartText="{Binding PartText_2}" scoreText="{Binding scoreText_2}" Star1Visibility="{Binding Star1Vi <landerGame:LevelTileUserControl PartText="{Binding PartText_3}" scoreText="{Binding scoreText_3}" Star1Visibility="{Binding Star1Vi <landerGame:LevelTileUserControl PartText="{Binding PartText_4}" scoreText="{Binding scoreText_4}" Star1Visibility="{Binding Star1Vi <landerGame:LevelTileUserControl PartText="{Binding PartText_5}" scoreText="{Binding scoreText_5}" Star1Visibility="{Binding Star1Vi <landerGame:LevelTileUserControl PartText="{Binding PartText_6}" scoreText="{Binding scoreText_6}" Star1Visibility="{Binding Star1Vi </StackPanel> <TextBlock VerticalAlignment="Top" Text="{Binding EpisodeTitleText}"Margin="0,5" </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
这是滚动列表时我的性能分析结果的屏幕截图:
这是列表的样子(这是游戏的级别选择):
我环顾四周,发现任何解决VirtualizationMode =“回收”的文章似乎无法正常工作.在这一点上,任何见解都将是最受欢迎的.
编辑:我已经上传了这个项目的完整相关代码,任何人都可以在这里自己尝试:http://maketag.net/landerGame.rar
解决方法
我建议远离ListBox,因为你试图在这里模拟的行为实际上是WrapPanel.
由于您为每个ListBox项添加了这么多用户控件的方式,我猜它会导致性能下降.如果您切换到WrapPanel然后绑定到您的项目集合,您可能会获得更好的性能,因为每个项目将被虚拟化而不必尝试一次虚拟化六个项目(这可能不起作用).
编辑:查看代码我认为您可以进行一些改进以提高性能.首先,摆脱ListBox并使用如下的ItemsControl:
<controls:Pivot Title="LANDER GAME"> <!--Pivot item one--> <controls:PivotItem Header="Episodes"> <ScrollViewer> <ItemsControl ItemsSource="{Binding EpisodeRows}" toolkit:TiltEffect.Suppresstilt="True" Margin="12,0"> <ItemsControl.ItemTemplate> <DataTemplate> <Grid VerticalAlignment="Top" Height="111" > <StackPanel Orientation="Horizontal" Visibility="{Binding TilesVisibility}"> ... </StackPanel> <TextBlock VerticalAlignment="Top" Text="{Binding EpisodeTitleText}"Margin="0,5" Visibility="{Binding TitleVisibility}" /> </Grid> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> </ScrollViewer> </controls:PivotItem>
我要做的就是摆脱硬编码的PartText_1,PartText_2类型的变量.只需创建一个项目列表,并在其他项目控件中包含另一个ItemsControl.
只是摆脱ListBox使它更顺畅.我还删除了VirtualizingStackPanel.VirtualizationMode =“Recycling”,因为它在开始时导致了性能损失,一旦加载它看起来更平滑.
c# – 在Windows 10中部署Windows Phone 8.1应用程序时找不到IpOverUsbSvc
Error : DEP6200 : Boostrapping ‘Device’ Failed. Device cannot be found. Windows Phone IP over USB Transport (IpOverUsbSvc) is not running. Retry after starting Windows Phone IP over USB Transport (IpOverUsbSvc) from the services management console.
Error : DEP6100 : The following unexpected error occurred during boostrapping stage ‘Connecting to the device’:
SmartDeviceException – Windows Phone IP over USB Transport (IpOverUsbSvc) is not running. Retry after starting Windows Phone IP over USB Transport (IpOverUsbSvc) from the services management console.
我的Lumia手机已连接,可从Windows文件资源管理器访问.
我已经检查了IpOverUsbSvc服务的服务,但它不在那里.所以我也检查了powershell:get-service IpOverUsbSvc
Status Name displayName ------ ---- ----------- Stopped IpOverUsbSvc Windows Phone IP over USB Transport...
我在使用Windows 8.1时没有收到这些错误.似乎此服务在Windows 10中不可用.
任何人都可以帮我解决这个问题吗?
解决方法
似乎……在某些情况下,ipoverusbsvc的注册信息已损坏.要修复它,只需将正确的信息放入注册表.
您可以找到ms guy将正确的.reg文件上传到他的onedrive的以下链接.
[UWP][SDK]IpOverUsbSvc service missing in windows 10 RC (Build 10240)
c# – 在Windows Phone 8.1 / WinRT中设置AutoFlash
与默认的相机应用程序一样,我希望有三种状态 – 自动,关闭和开启.我正在使用的代码如下:
switch (mode) { case FlashMode.Auto: _captureManager.VideoDeviceController.FlashControl.Auto = true; _captureManager.VideoDeviceController.FlashControl.Enabled = false; if (_captureManager.VideoDeviceController.FlashControl.AssistantLightSupported) _captureManager.VideoDeviceController.FlashControl.AssistantLightEnabled = true; break; case FlashMode.On: _captureManager.VideoDeviceController.FlashControl.Auto = false; _captureManager.VideoDeviceController.FlashControl.Enabled = true; if (_captureManager.VideoDeviceController.FlashControl.AssistantLightSupported) _captureManager.VideoDeviceController.FlashControl.AssistantLightEnabled = true; break; case FlashMode.Off: _captureManager.VideoDeviceController.FlashControl.Auto = false; _captureManager.VideoDeviceController.FlashControl.Enabled = false; if (_captureManager.VideoDeviceController.FlashControl.AssistantLightSupported) _captureManager.VideoDeviceController.FlashControl.AssistantLightEnabled = false; break; }
“开”和“关”模式工作正常,相机启动时设置为“自动”.但是,一旦您将相机更改为开启,然后关闭然后再返回自动,则闪光灯永远不会再次打开(我已经确认它不是场景的照明).我有什么想法可以重新启用自动闪光?
解决方法
如果需要自动闪存,则需要将Enabled和Auto设置为true.
c# – 在Windows Phone 8.1 Universal Store App中触发警报?
XML文件:
<toast duration="long" launch="alarm(eb6c47a8-e5e2-40d0-bc4e-3aa957f36484)"> <visual> <binding template="ToastimageAndText04"> <text id="1">Alarm App</text> <text id="2">Alarm Test</text> <text id="3">Time to wake up!</text> </binding> </visual> <audio loop="true" src="ms-winsoundevent:Notification.Looping.Alarm2" /> <commands scenario="alarm"> <command id="snooze" /> <command id="dismiss" /> </commands> </toast>
通知类:
public class Notification { public async Task CreateNotification() { StorageFolder storageFolder = Package.Current.InstalledLocation; var toast = await storageFolder.GetFileAsync("toast.xml"); var xml = await FileIO.ReadTextAsync(toast); NotifyScheduled(xml); } private void NotifyScheduled(string toast,int delay = 5,int snooze = 300,int maxSnoozeCount = 3) { XmlDocument document = new XmlDocument(); document.LoadXml(toast); var notifier = Toastnotificationmanager.CreatetoastNotifier(); var scheduledToast = new ScheduledToastNotification(document,DateTime.Now.AddSeconds(delay),TimeSpan.FromSeconds(snooze),(uint)maxSnoozeCount); notifier.AddToSchedule(scheduledToast); } }
并在Phone的xaml.cs页面中实现:
var note = new Notification(); note.CreateNotification();
结果应如下所示:
但它目前只是像这样做一个常规的吐司通知(在你根据需要解雇或打盹之前不会发出警报):
就像我提到的,我可以让它在Windows平板电脑(Windows 8.1)中正常工作,它看起来像这样:
编辑:值得注意的是,如果您的平板电脑设备没有将您的应用程序指定为默认警报应用程序(只能分配一个),则不会显示“暂停/关闭”按钮.但是,在Windows Phone 8.1中,没有选项可以定义默认警报应用程序的内容.
解决方法
这是一篇关于Windows Phone 8.0和8.1中的功能的非常好的文章,以及它们如何映射以及可以在哪里执行的操作:http://msdn.microsoft.com/en-us/library/dn642486(v=vs.105).aspx
有一节(第一节)叫
Windows Phone 8 features for which there is no Windows Phone Store equivalent
在其中,你可以看到
Alarms and reminders
我们今天的关于C#-在Windows Phone 7中创建一个简单的测验应用和创建一个测试类的分享已经告一段落,感谢您的关注,如果您想了解更多关于c# – ListBox VirtualizingStackPanel.VirtualizationMode =“回收”在Windows Phone 7.5中不起作用、c# – 在Windows 10中部署Windows Phone 8.1应用程序时找不到IpOverUsbSvc、c# – 在Windows Phone 8.1 / WinRT中设置AutoFlash、c# – 在Windows Phone 8.1 Universal Store App中触发警报?的相关信息,请在本站查询。
本文标签: