标签: windows-runtime

旧的本机应用程序可以在Windows8平板电脑上运行吗?

在此输入图像描述

我不太了解这张照片.在Metro风格的应用程序中,C/C++意味着什么?原生C/C++?或者它是托管C++?他们(Metro风格的应用程序)甚至没有Win32层!

要创建一个兼容Metro风格和桌面的应用程序,我们应该只使用.NET代码吗?旧的本机应用程序可以在Windows8 Tablet上运行吗?

.net c# windows windows-8 windows-runtime

14
推荐指数
2
解决办法
4778
查看次数

Metro风格应用:WinJS必备?

昨天我开始使用JavaScript开发我的第一个Metro风格应用程序.我在Visual Studio 2011中使用了其中一个模板.这个项目模板附带了一堆生成的代码,这些代码在很大程度上依赖于WinJS.整个结构提醒ASP.NET的视图和相应的Code Behind文件.还有一个navigator.js文件,负责视图之间的导航.整个数据驻留在data.js中,可以使用不同的函数进行检索.

我使用backbone.js,我发现它的概念像MVC结构和路由非常酷.我的问题基本上是你是否可以使用backbone.js实现这样的Metro风格应用程序?我可以消除WinJS并从头开始吗?我应该尝试将backbone.js集成到当前结构中吗?那会是什么样子?使用第三方JavaScript框架有任何限制吗?我应该保留生成的结构吗?

使用JavaScript开发Metro Style应用程序的最佳实践和模式是什么?

谢谢

microsoft-metro windows-8 windows-runtime winjs

14
推荐指数
1
解决办法
6556
查看次数

如何在Windows 8 XAML中设置控件高度的动画

我在Windows 8上的Metro风格的C#/ XAML应用程序中执行一个简单的基于故事板的控件高度动画时遇到了麻烦.

以下简单的XAML和代码片段背后的代码在Silverlight 5和Windows Phone 7中运行良好,但在Windows 8中什么都不做(至少对我来说):

<Page.Resources>
    <Storyboard x:Name="expandAnimation">
        <DoubleAnimation Storyboard.TargetName="scaleButton" Storyboard.TargetProperty="Height" From="50" To="200" Duration="0:0:1"/>
    </Storyboard>
</Page.Resources>

<StackPanel Width="200">
    <Button x:Name="scaleButton" Click="scaleButton_Click" Content="Scale"/>
    <Button Content="Another button"/>
    <Button Content="Yet another button"/>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

C#代码:

private void scaleButton_Click(object sender, RoutedEventArgs e)
{
    expandAnimation.Begin();
}
Run Code Online (Sandbox Code Playgroud)

可以更改相同的代码以动画控件的其他属性,例如Opacity,它按预期工作.

我可以设置ScaleTransform的动画来进行缩放,但它会改变控件的内部渲染,并且不会影响相邻控件的布局,这对我来说是一个问题.

希望我不会错过任何明显的东西,但这不应该只是工作吗?

xaml windows-8 windows-runtime winrt-xaml

14
推荐指数
1
解决办法
6870
查看次数

滚动到ScrollViewer结尾的最佳方式

目前,当我添加新项目时,我将代码自动滚动到结尾的唯一方法如下:

XAML:

<ScrollViewer x:Name="chatViewScroller" HorizontalAlignment="Left" Height="201" Margin="0,32,0,0" VerticalAlignment="Top" Width="475" Background="#7FFFFFFF">
    <StackPanel x:Name="chatViewContent" />
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

码:

                chatViewContent.Children.Add(
                    new TextBlock() {
                        Text = text,
                        FontSize = 18,
                        TextWrapping = Windows.UI.Xaml.TextWrapping.Wrap,
                        Margin = new Thickness(10, 3, 10, 0),
                        Foreground = new Windows.UI.Xaml.Media.SolidColorBrush(
                            isServerMessage ? Windows.UI.Colors.Purple : Windows.UI.Colors.Black)
                    });
                await Task.Delay(10);
                chatViewScroller.ScrollToVerticalOffset(chatViewScroller.ScrollableHeight);
Run Code Online (Sandbox Code Playgroud)

这是接受的做法吗?我是否需要等待一段随机的时间?

xaml scroll windows-runtime

14
推荐指数
3
解决办法
2万
查看次数

从Windows :: Storage :: Streams :: IBuffer中获取一个字节数组

我有一个实现接口的对象,Windows::Storage::Streams::IBuffer我希望从中获取一个字节数组,但是在查看文档时,这个接口看起来很没用,并且文档没有提供任何可以组合的其他类的引用用这个界面来实现我的目的.到目前为止我用google发现的只是对.Net类WindowsRuntimeBufferExtensions的引用,但我使用的是C++,所以这也是一个死胡同.

有人可以提示如何从Windows::Storage::Streams::IBufferC++中获取字节数组吗?

c++ stream windows-8 windows-runtime visual-studio-2012

14
推荐指数
4
解决办法
1万
查看次数

从异步方法返回输出时推荐的方法签名?

我有一个异步方法:

public async Task<BitmapSource> GetBitmapAsync(double[] pixels);
Run Code Online (Sandbox Code Playgroud)

假设我也有这个课程:

public class PixelData
{
    public double[] Pixels { get; }
}
Run Code Online (Sandbox Code Playgroud)

我现在想要创建一个生成BitmapSource输出的方便方法,使用上面的异步方法来完成工作.我可以提出至少三种方法来做到这一点,但对于我来说,从效率和可靠性的角度来看,我应该选择哪一种方法.

有人可以建议; 以下每种方法的优点和缺点是什么?

选项A创建一个返回以下内容Result的同步方法Task:

public BitmapSource GetBitmap(PixelData pixelData)
{
    return GetBitmapAsync(pixelData.Pixels).Result;
}
Run Code Online (Sandbox Code Playgroud)

选项B创建一个返回Task<BitmapSource>以下内容的同步(或它是异步?)方法:

public Task<BitmapSource> GetBitmap(PixelData pixelData)
{
    return GetBitmapAsync(pixelData.Pixels);
}
Run Code Online (Sandbox Code Playgroud)

选项C创建一个显式使用的异步方法await:

public async Task<BitmapSource> GetBitmapAsync(PixelData pixelData)
{
    return await GetBitmapAsync(pixelData.Pixels);
}
Run Code Online (Sandbox Code Playgroud)

.net c# async-await async-ctp windows-runtime

14
推荐指数
1
解决办法
329
查看次数

ListBox背景颜色(XAML/WinRT/Metro)

我正在尝试更改WinRT页面(XAML)上"ListBox"的背景颜色.当我使用"背景"属性时,它会在控件没有焦点时更改背景的方式.当它获得焦点时,它会变为白色,我无法弄清楚如何覆盖它.

我的问题是,如果强制选择/有焦点,如何强制ListBox的背景始终为灰色?

XAML#1:

    <ListBox x:Name="ListBoxMenu" Background="LightGray" Grid.Row="0" Grid.Column="0" Margin="0,0,0,0">
        <ListBoxItem>Menu Item 1</ListBoxItem>
        <ListBoxItem>Menu Item 2</ListBoxItem>
        <ListBoxItem>Menu Item 3</ListBoxItem>
    </ListBox>
Run Code Online (Sandbox Code Playgroud)

XAML#2(每个项目也设置):

    <ListBox x:Name="ListBoxMenu" Background="LightGray" Grid.Row="0" Grid.Column="0" Height="124" VerticalAlignment="Top">
        <ListBoxItem Background="LightGray">Menu Item 1</ListBoxItem>
        <ListBoxItem Background="LightGray">Menu Item 2</ListBoxItem>
        <ListBoxItem Background="LightGray">Menu Item 3</ListBoxItem>
    </ListBox>
Run Code Online (Sandbox Code Playgroud)

具有灰色背景的ListBox,当它没有焦点时

ListBox,在获得焦点时将背景重置为白色

作为临时解决方案,我将ListBox设置为仅硬编码高度,然后使用该列上的边框用LightGray填充剩余的空间.我真的想总是在ListBox上设置背景颜色,这可能吗?

xaml microsoft-metro windows-8 windows-runtime

14
推荐指数
2
解决办法
7079
查看次数

从资源文件/内容获取流

这是从资源文件获取Stream的正确/唯一方法吗?

    Uri uri = new Uri(fullPath);

    StorageFile storageFile = 
      await Windows.Storage.StorageFile.
        GetFileFromApplicationUriAsync(uri);

    IRandomAccessStreamWithContentType randomAccessStream = 
      await storageFile.OpenReadAsync();

    IInputStream resourceStream = (IInputStream)
      randomAccessStream.GetInputStreamAt(0);
Run Code Online (Sandbox Code Playgroud)

我的所有其他源(http和本地存储)都返回一个Stream对象,并且使用if-else代码使用其中一个或其他代码是很痛苦的.

我也尝试过创建一个MemoryStream,但我甚至找不到一个方法来获取字节...请帮助.

    uint size = (uint)randomAccessStream.Size;
    IBuffer buffer = new Windows.Storage.Streams.Buffer(size);
    await randomAccessStream.ReadAsync(buffer, size, 
      InputStreamOptions.None);

    Stream stream = new MemoryStream(buffer); // error takes byte[] not IBuffer
Run Code Online (Sandbox Code Playgroud)

从资源读取时的IInputStream.ReadAsync():http: //msdn.microsoft.com/en-us/library/windows/apps/windows.storage.streams.iinputstream.readasync.aspx

而Stream.Read()和Stream.ReadAsync()看起来像这样:

http://msdn.microsoft.com/en-us/library/system.io.stream.read.aspx

http://msdn.microsoft.com/en-us/library/hh137813.aspx

谢谢

c# asynchronous microsoft-metro windows-runtime windows-store-apps

14
推荐指数
2
解决办法
1万
查看次数

在Windows Phone 8.1 Runtime中读取项目文件夹中的文本文件

我希望在第一次启动应用程序时将我的项目的根文件夹中的一个文件.txt读入我的数据库,但我不知道该怎么做.任何人都知道我该怎么做,请帮助我...谢谢

我在Windows Phone 8.1 Runtime中工作.

c# windows-phone windows-runtime windows-phone-8.1 win-universal-app

14
推荐指数
2
解决办法
1万
查看次数

无法在NodeJS中使用本机Windows库

我正在尝试编写一个使用Windows本机通知的简单Electron应用程序.为此,我依赖于电子窗口交互式通知.

当我在我的项目上运行npm install之后,electron-rebuild我得到:

App threw an error during load
Error: The specified module could not be found.
\\?\C:\Users\moro\projects\tw-en-ty\node_modules\electron-windows-interactive-notifications\build\Release\notifications_bindings.node
    at Error (native)
    at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:173:20)
    at Object.Module._extensions..node (module.js:583:18)
    at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:173:20)
    at Module.load (module.js:473:32)
    at tryModuleLoad (module.js:432:12)
    at Function.Module._load (module.js:424:3)
    at Module.require (module.js:483:17)
    at require (internal/module.js:20:19)
    at bindings (C:\Users\moro\projects\tw-en-ty\node_modules\bindings\bindings.js:76:44)
Run Code Online (Sandbox Code Playgroud)

根据NodeJS问题,它可能是本机依赖性问题.当我notifications_bindings.node通过dependencywalker检查时,我看到以下缺少直接的DLL(在许多缺少的嵌套中):

图片

坦率地说,我不知道问题是什么:

node.js windows-runtime node-gyp windows-10 electron

14
推荐指数
1
解决办法
961
查看次数