Tag: windows phone 8

将光学图像从一页传递到另一页C#

我知道如何通过NavigationService.Navigate传递数据(new Uri(“/ Second.xaml?msg = mesage”,UriKind.Relative)); 问题是,如何将从库中选择的图像传递到另一个页面? 要选择图像,我使用PhotoChooserTask,如果它已经完成,我有: private void photoChooserTask_Completed(object sender, PhotoResult e) { if (e.ChosenPhoto != null) { BitmapImage image = new BitmapImage(); image.SetSource(e.ChosenPhoto); this.img.Source = image; } } 如何将所选照片发送到另一页?

在Windows Phone 8中实现类似Tab的导航模型 – 如何?

我目前正在尝试实现与Windows Phone 8上的Internet Explorer应用程序非常相似的导航方案。 IE应用程序可以有多个用户可以在其间切换的选项卡。 每个选项卡都有自己的历史记录。 点击手机上的后退按钮可以转到该选项卡导航历史记录中的上一页(不是PhoneApplicationFrame.BackStack ) 。 如果没有以前的页面,后退按钮会将您带到上一个打开的选项卡,如果没有,则退出应用程序。 为什么这让我很烦恼 Application.RootVisual只能设置一次。 所以你不能有两个PhoneApplicationFrames,每个都有自己的BackStack,在两者之间交换RootVisual 。 你无法遍历BackStack(毕竟它是一个Stack)。 只能调用GoBack() 。 调用GoForward()将抛出exception。 PhoneApplicationFrame.GoBack()从BackStack中删除条目,只能通过PhoneApplicationFrame.Navigate(…)方法再次添加。 因此,操纵BackStack是不行的。 聪明的想法 保持Dictionary<enum, List> ,每次调用自定义NavigationService.Navigate(tabTypeEnum, uriString, params) 。 这将保留每个tabType的导航历史记录,从而允许我们在处理BackKeyPress事件时导航当前Tab的历史记录。 不好的是 ,调用Navigate(…)转到上一页(而不是GoBack )将添加到BackStack。 所以需要维护,这会伤害我的大脑。 创建自定义NavigationAwareTabPage : PhoneApplicationPage ,通过在Content更改时设置转换动画来跟踪其自己的导航历史记录和伪造导航。 我们唯一一次调用真正的 Navigate是我们从一个标签切换到另一个标签。 (我认为这是IE应用程序的function。) BackKeyPress必须如下所示。 这个: void RootFrame_BackKeyPress(object sender, CancelEventArgs e) { var rootFrame = sender as PhoneApplicationFrame; if (rootFrame.CanGoBack) […]

Windows Phone CollectionViewSort没有显示任何内容

我正在尝试在WP8应用程序中开发一个页面,该应用程序顶部有一个搜索框,以及与下面的搜索匹配的项目列表,随着搜索框的更新而更新。 很简单,对吧? 除了我不能让它工作。 在仔细阅读StackOverflow和interwebz之后,推荐的解决方案似乎是使用CollectionViewSource 。 好吧,我正在尝试使用它,没有任何项目出现。 一旦我切换到包含我在XAML中的项目的ObservableCollection ,一切都显示正常。 我的数据是从数据库异步加载的。 XAML 查看模型 public class MyViewModel { private ObservableCollection _allItems = new ObservableCollection(); public CollectionViewSource SearchResults { get; private set; } public MyViewModel() { SearchResults = new CollectionViewSource { Source = _allItems }; _allItems.CollectionChanged += (_, __) => SearchResults.View.Refresh(); LoadAllItemsAsync(); } private async void LoadAllItemsAsync() { IList […]

Frame.Navigate到另一个程序集中的Page派生类

我想将Windows Phone 8基于空白应用程序模板的视图保存在与包含应用程序清单和App.xaml的程序集不同的程序集中。 我一直收到一个神秘的例外,它在弄清楚如何解决它时根本没有帮助: 从模板Visual C#> Store Apps> Windows Phone Apps> Blank App(Windows Phone)创建一个新项目。 构建和部署,效果很好。 MainPage.xaml的属性声明Build Action是Page,这是正确的。 基于包含原始项目的解决方案中相同类别的类库(Windows Phone)模板创建一个新项目,将其命名为MyApp.Views 。 使用剪切和粘贴命令将MainView.xaml文件移动到新创建的项目。 将对MyApp.Views的引用添加到原始项目。 构建,部署,查看应用程序启动和找不到视图只是为了将此exception传播回开发人员的框: ComException : 错误HRESULT E_FAIL已从调用COM组件返回。 这并没有说绝对任何有用的东西,顶部堆栈框架是Windows.UI.Xaml.Controls.Frame.Navigate(Type sourcePageType, Object parameter)紧跟第一个,即TheOriginalProject.App.OnLaunched(LaunchActivatedEventArgs e) 。 解决方案是不使用带有包URI的NavigationService ,因为它似乎在Windows Phone 8中不存在,或者至少默认情况下在Blank App模板中没有引用包含它的程序集。 无论如何,我非常喜欢强类型视图名称而不是包URI。 我想有人必须已经遇到这个问题,有什么问题? 是否有API或工具可以让我了解来自COM的最新E_FAIL是什么? 编辑:当使用Window.Current.Content = new MainPage()作为OnLaunched的唯一内容时,会弹出XAML解析器exception。 它无法填充exception消息,但绝对可以更好地提示正在发生的事情。 但是,仍然没有解决方案,问题只转移到MainPage构造函数中的this.InitializeComponent() 。 我现在看到的是Windows.UI.Xaml.Markup.XamlParseException ,包含Parser内部错误的 WinRT信息:对象编写器’%0′和无法加载的附加信息。 x:Class属性出现在exception对话框窗口提示的位置128, 这个线程似乎相关,但我无法弄清楚如何。 请注意,我也会在确认没有收到错误的人身上找到值。 如果您已经尝试了重现并且无法重现问题的步骤,请写一条评论,以便我可以确定导致我正在努力解决的错误。

如何顺利导航到不同的全景项目

在全景应用程序中,我添加了一些用户导航回某个全景项目的情况。 然而,这是在一次突然的运动中完成的。 有没有办法可以通过某种forms的过渡更顺利地完成这项行动? 或类似的东西?

Windows phone 8滑块绑定仅在单击后才起作用

我正在Windows Phone 8上编写一个音频应用程序。我创建了一个MediaElement和一个搜索栏(滑块): 这是我的转换器代码: public class PositionConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { double position = 0; TimeSpan timespan = TimeSpan.Parse(value.ToString()); position = timespan.TotalSeconds; return position; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return TimeSpan.FromSeconds((double)value); } } 这是CurrentStateChanged事件代码: private void GetTrackDuration(object sender, […]

Deployment.Current.Dispatcher.BeginInvoke如何在Windowsapp store中运行?

我有使用Windows Phone 8的经验,我正在使用WCF数据服务,我能够使用以下代码成功更新我的记录: public void UpdateJob1(EquipBooking equipBooking) { this._context.UpdateObject(equipBooking); this._context.BeginSaveChanges(OnChangesSaved, this._context); } private void OnChangesSaved(IAsyncResult result) { bool errorFound = false; Deployment.Current.Dispatcher.BeginInvoke(() => { this._context = result.AsyncState as THA001_devEntities; try { // Complete the save changes operation. this._context.EndSaveChanges(result); } catch (DataServiceRequestException ex) { errorFound = true; MessageBox.Show(“Error, While Updating Record”); } if (!errorFound) { MessageBox.Show(“Record […]

sockets-for-pcl没有按预期进行多播

我想在WP8.1上试验UDP多播,并在nuget上找到这个库 。 我创建了2个应用程序,一个在WP8.1上,一个在桌面上,我只提供C#代码,因为WPF在这里无关紧要。 WP8.1: public sealed partial class MainPage : Page { int port = 11811; string ip = “239.123.123.123”; UdpSocketMulticastClient udp; public MainPage() { this.InitializeComponent(); this.NavigationCacheMode = NavigationCacheMode.Required; } async protected override void OnNavigatedTo(NavigationEventArgs e) { udp = new UdpSocketMulticastClient(); udp.MessageReceived += (sender, args) => { var data = Encoding.UTF8.GetString(args.ByteData, 0, args.ByteData.Length); Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () […]

WP8 – Facebook登录问题

我正在尝试使用Windows Phone 8上的Facebook C#SDK在Facebook上validation用户。为此,我在此处遵循以下代码: FacebookLoginPage.xaml.cs 但我面临的问题是,每当我输入用户名和密码进入打开以validation用户身份的对话框时,我就会看到以下页面: 在此之后,我的程序不会重定向到Landing页面,这是一个单独的视图。 我看到的其他解决方案建议隐藏WebView不适用,因为身份validation被抽象为单个LoginAsync函数调用。 关于该怎么做的任何建议?

WP 8.1 ISupportIncrementalLoading LoadMoreItemsAsync不断被无休止地调用

我试图使用以下示例实现无限滚动 http://www.davidbritch.com/2014/05/data-virtualisation-using.html 问题是在我的情况下, LoadMoreItemsAsync不断被无休止地调用 。 我正在集线器上开发这个(不确定这是否有所不同)并使用MVVMLight。 以下是我的代码 的.xaml 下面给出了我对ISupportIncrementalLoading的实现 public class IncrementalLoadingNotificationsCollection : ObservableCollection, ISupportIncrementalLoading { private INotificationService _notificationService; public IncrementalLoadingNotificationsCollection(INotificationService notificationService) { HasMoreItems = true; _notificationService = notificationService; } public bool HasMoreItems { get; private set; } public IAsyncOperation LoadMoreItemsAsync(uint count) { return InnerLoadMoreItemsAsync(count).AsAsyncOperation(); } private async Task InnerLoadMoreItemsAsync(uint expectedCount) { var actualCount = […]