Tag: winrt xaml

在UWP中将BitmapImage转换为字节数组

如何在UWP中将BitmapImage对象转换为字节数组? 在.Net中很容易实现,即使在以前的WinRT版本中,在整个互联网上看都没有成功,其中一个解决方案是使用像本答案中提到的WriteableBitmap ,但在当前版本的UWP中,构建一个WriteableBitmap出一个BitmapImage是不可能的,任何解决方法?

通用应用程序 – 加载combobox’ItemsSource async会产生奇怪的行为

在使用通用应用程序(目前仅在WP8.1方面)时,我偶然发现了以下奇怪的事情。 我有一个ComboBox,UserControl(位于WindowsPhone项目中)它被绑定到共享项目中的VM。 ItemsSource和SelectedItem都绑定到VM中各自的属性。 运行应用程序时,当您选择除第一个项目之外的任何项目时,它运行正常。 但是,当我选择第一个项目时,ComboBox中显示的字符串显示VM的.ToString() – 方法而不是…… (顺便说一句,这是一个简单的List ,所选项目是一个string 。它不能比那简单得多:p) 我创建了一个示例应用程序,只包含这个Combobox和VM。 我能够重现这一点,我异步填写绑定到ItemsSource的属性的那一刻。 从同步方法执行时,它可以工作。 但是从异步方法填充它只会产生上述问题。 一些截图: 第一个显示应用程序何时加载。 集合更改时,将选择列表的第一个元素。 它显示在这里: 当您单击ComboBox时,您可以像往常一样查看其项目: 假设你点击第一个以外的任何元素,你仍然会得到正常的行为: 到目前为止,这很正常。 现在单击第一个项目。 你得到这个: … 我尝试了各种各样的事情,比如把它作为一个对象的列表,而不仅仅是字符串。 将转换器添加到绑定对象,仅用于调试目的,仅显示实际的字符串值。 我不知道绑定的SelectedItem如何以及为什么突然显示ComboBox的DataContext … 你可以在这里下载示例应用程序: http : //1drv.ms/1DhklCQ (不包含二进制文件,只包含代码) 有人有任何想法吗? 编辑:重现此问题所需的代码: 创建一个空白的通用商店应用程序(8.1)。 在WindowsPhone项目中,文件MainPage.xaml:我添加了一个简单的combobox,并捕获Loaded事件。 在它的代码背后。 我已将DataContext分配给VM。 在Loaded事件中,我异步调用VM.LoadData() private VM _vm = new VM(); public MainPage() { this.InitializeComponent(); this.DataContext = _vm; } private […]

向DatePicker添加Blend行为的问题

我正在尝试向DatePicker控件添加Blend行为,以将MVVM-Light RelayCommand绑定到DateChanged事件,如下所示: 我使用以下定义: xmlns:Interactivity=”using:Microsoft.Xaml.Interactivity” xmlns:Core=”using:Microsoft.Xaml.Interactions.Core” 但是,我一直收到以下错误: WinRT information: Cannot add instance of type ‘Microsoft.Xaml.Interactions.Core.EventTriggerBehavior’ to a collection of type ‘Microsoft.Xaml.Interactivity.BehaviorCollection’. 我已经在我的项目中(以及在同一个Xaml文件中的其他控件)中以这种方式成功地使用Blend行为将事件绑定到命令,并且DatePicker控件是唯一抛出错误的控件。 有没有其他方法来实现这一点或WinRT DatePickers以这种方式受限?

windows phone 8.1 swype键盘事件捕获

更新[2014年7月16日]:问题在技术上是不正确的。 阅读答案以获取更多详细信息。 我试图在到达我的文本框之前捕获文本。 我发现了以下事实: KeyDown , KeyUp事件会告诉你什么是virtualKey被按下而不是字符!! CoreWindow.CharacterReceived将捕获角色但是这个 事件不是特定于TextBox的,它会告诉你角色 在它到达textBox之后。 现在我的问题是: 任何人都可以告诉我如何在Windows Phone 8.1上捕获Swype键盘的事件? 请注意: 1-我试图在TextBox.Paste中捕获它,但它失败了:( 2-事件textBox.textChanged()不是我想要的,因为键盘完成后事件触发,并且此事件(textChanged)将在keyDown , keyUp , CharacterReceived之后触发,无论文本是如何输入的。

如何将listviewitem中的按钮绑定到Winrt中的ViewModel中的Command

我在ViewModel中有一个NavigateToAccountsCommand RelayCommand属性。 当我将相同的页面上的按钮绑定到ListView外的任何位置时,命令绑定正在运行。 但是,只要我将其移动到ListView的DataTemplate,它就无法正常工作。 我已经尝试将绑定从NavigateToAccountsCommand更改为DataContext.NavigateToAccountsCommand仍然无法正常工作。 感谢您的帮助…

Windows 8中通过Metro DynamicResource启动屏幕的颜色?

我在以下路径中查看了Generic.xaml和ThemeResources.xaml: C:\ Program Files(x86)\ Windows Kits \ 8.0 \ Include \ WinRT \ Xaml \ Design 但是,它们似乎不包含我可以使用的资源键,以便检索在Windows 8开始屏幕中选择的当前方案的颜色。 我试图通过XAML中的DynamicResource检索的颜色在下面直观地看到,以certificate我的观点。

如何使用MVVM灯处理WP 8.1上的后退按钮?

我正在寻找适当的方法来使用MVVM light 5上提供的NavigationService来处理Windows Phone 8.1 WinRT上的后退按钮事件。 到目前为止,我认为最好的地方是在ViewModelLocator通过注册NavigationService的GoBack方法,同时按照MVVM Light V5中NavigationService中概述的方法创建它。 这是一种有效的方法。 但是,我在导航之前无法处理validation,因此我想知道是否有更合适的方法来处理此事件。 public class ViewModelLocator { public ViewModelLocator() { ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default); // Register NavigationService SimpleIoc.Default.Register(CreateNavigationService); // Register ViewModels here } private INavigationService CreateNavigationService() { var navigationService = new NavigationService(); // Register pages here navigationService.Configure(“Details”, typeof(DetailsPage)); // Handle back button HardwareButtons.BackPressed += (sender, args) => { […]

如何在Windows 8 Metro App中获取GridView.Selected项目的滚动位置

我正在使用代码选择gridview项目,所以我还需要我的gridview在选定项目的位置滚动,我尝试了GridView.ScrollintoPosition()但它无法正常工作。 有没有办法获得SelectedItem的Scroll位置 ,以便我可以使用scrollViewer1.ScrollToHorizo​​ntalOffsetWithAnimation()滚动它

winRT拖放,交换两个项目而不是插入

我是WPF的长期用户,但对WinRT来说是新手。 我想知道是否有内置方式或简单的方法来集成容器中的交换function,以便交换交换容器中的两个项目。 所需的行为是拖动一个项目并将其放在另一个项目上,并将拖动的项目和拖动它的项目放在容器交换的位置。 示例我有一个列表1 2 3 4 5 6 7 8,如果我拖动7 “on” 4我希望交换两个项目,以便结果列表变为1 2 3 7 5 6 4 8 我目前正在使用带有ItemsWrapGrid的GridView作为它的容器来显示大量的图片缩略图。 我需要能够重新排序它们,最常用的操作是交换两个图像的位置。 或者,如果没有内置方式,你能不能告诉我从头开始做的“正确”方向是WinRT? 我正在考虑不在容器处理拖放而是在项目级别,并手动交换ObservableCollection的项目?

如何将Windows.UI.Color转换为Windows Universal应用程序中的字符串颜色名称

我正在尝试将Windows.UI.Color转换为Windows 8.1 Universal应用程序中的简单字符串颜色名称。 我已经有Color的ARGB值(甚至hex代码),我只想要它的相关已知名称(例如,从#7AFF7A7A到“鲑鱼”)。 由于System.Drawing在WinRT中不可用,因此我无法使用ColorConverter或ColorTranslator。 我已经尝试将Windows.UI.Color对象转换为SolidColorBrush甚至是Brush,但它们都没有提供名称转换function。 这样做的最佳方法是什么?