是否可以在Windows 8平板电脑(WinRT)(ARM处理器版本)上编写和编译C#?
基本上它归结为:
如果以上是真的,我看不出有什么问题,但我如果C#编译器在ARM(仅限了很多关于编制员额的运行,目前尚无法找到为 ARM).我也看过SharpDevelop,发现他们的源代码编译为"Any CPU",根据这篇文章:Windows RT和c#,意味着它将在ARM上运行.
然而,Sharpdevelop需要.NET 4.0"Full"运行时,如果WinRT有,我无法找到.我敢打赌它没有,因为WinRT应该是一个非常轻量级的Windows版本.
作为旁注,我知道Windows平板电脑将分为两个版本,一个用于ARM,另一个用于经典处理器.经典处理器将运行正常的Windows 8版本,这意味着它可以运行所有本机应用程序.编译C#在这里不是问题 - 所以问题是,我可以在ARM上做同样的事情吗?
这对于旅行和快速尝试新想法来说非常棒.
我是Windows 8和C#开发的新手,但我对Java Programming有一定的经验.
所以,当我尝试在java中创建一些Json解析器(例如)时,我不能在不使用try-catch块的情况下执行此操作,这样我就可以处理异常,但是当我尝试在c#中执行相同操作时(Windows 8)我不使用try-catch块也可以,如下所示:
if (json != null)
{
JObject jObject = JObject.Parse(json);
JArray jArrayUsers = (JArray)jObject["users"];
foreach (JObject obj in jArrayUsers)
{
ListViewMainViewModel user = new ListViewMainViewModel(
(String)obj["email"],
(String)obj["token"],
(String)obj["institution"],
(String)obj["uuidInstitution"]);
usersList.Add(user);
}
return usersList;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道正确的方法是捕获JsonReaderException,但Visual Studio从未警告过我.我想知道是否有一种简单的方法可以知道某个方法是否抛出异常,就像在使用eclipse的java上一样(它是强制实现try-catch块或代码不会编译)
哟,
所以我一直在一台机器上开发Visual Studio 2013中的通用Windows应用商店应用,并希望继续在运行Windows 10 Technical Preview的另一台机器上开发它.
问题是在Visual Studio 2015 Preview中有一个新的C++ Redistributable包版本(2015),而最新的SQLite需要版本2013,因此缺少特定的引用.我可以构建项目,它成功部署,但有一个例外,说它无法加载sqlite3.dll.我假设这是因为缺少Visual C++ Redistributable Package 2013.我尝试下载它,但是在Extensions下的Add reference对话框中仍然缺少该条目,在VS 2013上可以看到它.
任何让它成功的经验?关于SQLite何时适用于Windows 10的任何内幕消息?
干杯
我正在尝试将TextBlockListView的ItemTemplate中的Visibility属性绑定到TextBlock的父ListViewItem的IsSelected属性.
使用此标记,TextBlock始终可见.
<ListView x:Name="ItemListView" ItemsSource="{Binding Path=Accounts}" Margin="60,0,0,10" Grid.Row="1" Grid.Column="0">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100">
</ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="200"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Image Width="100" Height="100" Grid.Column="0"></Image>
<StackPanel Grid.Column="1">
<TextBlock Text="{Binding Path=Account.Name}"
FontSize="24" Margin="5,0,0,0" TextWrapping="Wrap" />
</StackPanel>
<TextBlock Grid.Column="3" VerticalAlignment="Bottom"
Visibility="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=IsSelected, Converter={StaticResource boolConverter}, Mode=OneWay}">
Show More Details...
</TextBlock>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
注意:1.如果有任何不同,这是WinRT; 用C#编写的Metro应用程序.2. boolConverter是一个相当标准的转换器似乎正常工作.
我正在尝试动态设置listview项模板的类:
<div id="semanticZoomTemplate" data-win-control="WinJS.Binding.Template" style="display: none">
<h1 class="semanticZoomItem-Text" data-win-bind="innerText:title;class:contains"></h1>
</div>
Run Code Online (Sandbox Code Playgroud)
但是当"class"作为属性名称出现时,data-win-bind无法执行任何操作.
如果确实我无法使用data-win-bind更改类,是否有正确的方法来设计列表视图中的特定项?
如何运行返回值并获取参数的任务?我看到有一个重载方法,Task.Run<TResult>(Func<TResult>)但我如何在那里传递参数?
我编写了以下扩展方法来连接Windows运行时应用程序中的两个IBuffer对象:
public static IBuffer Concat(this IBuffer buffer1, IBuffer buffer2)
{
var capacity = (int) (buffer1.Length + buffer2.Length);
var result = WindowsRuntimeBuffer.Create(capacity);
buffer1.CopyTo(result);
buffer2.CopyTo(0, result, buffer1.Length, buffer2.Length);
return result;
}
Run Code Online (Sandbox Code Playgroud)
这是处理这个问题最有效的方法吗?有更好或更简单的方法吗?
我已经回顾了在C#中组合两个或多个字节数组的最佳方法,但我认为我不应该转换为字节数组.
因此,在开发WinRT应用程序时,偶尔和看似随机的Visual Studio经历了一个漫长的过程,从"创建一个新的干净布局......"开始,我想了解有关WinRT应用程序所涉及的构建和部署过程的更多信息.我理解创建在某种沙箱环境中运行的应用程序的概念,但我正在寻找有关该沙箱环境的信息.另外(这可能听起来很愚蠢)但是在沙箱中运行的可执行文件有什么不同,为什么它不能作为独立运行?感谢您提前获取的信息.
我曾尝试对此进行一些研究,但对WinRT的这一部分似乎知之甚少.
编辑:
我将开始对此表示赏心悦目,因为我真的不理解它,谷歌/微软在我搜索时非常贫瘠.所以获得赏金的问题是:
先感谢您!!
deployment build windows-8 windows-runtime visual-studio-2012
我试图在我的Windows 8商店应用程序中读取文件.这是我用来实现此目的的代码片段:
if(file != null)
{
var stream = await file.OpenAsync(FileAccessMode.Read);
var size = stream.Size;
using(var inputStream = stream.GetInputStreamAt(0))
{
DataReader dataReader = new DataReader(inputStream);
uint numbytes = await dataReader.LoadAsync((uint)size);
string text = dataReader.ReadString(numbytes);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,在行中抛出一个例外:
string text = dataReader.ReadString(numbytes);
Run Code Online (Sandbox Code Playgroud)
执行消息:
No mapping for the Unicode character exists in the target multi-byte code page.
Run Code Online (Sandbox Code Playgroud)
我怎么得到这个?
我正在尝试使用3个命令将MessageDialog添加到Windows Phone 8.1应用程序(WinRT).查看MessageDialog的文档:
http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.popups.messagedialog.aspx
它说"对话框有一个命令栏,可以支持最多三个命令",所以我认为这不会是一个问题.我拿了他们的例子(在文档中找到)并制作了一个简单的测试应用程序,它在桌面和Windows手机上都运行得很好.然后,我采用相同的示例并向其添加了一个命令:
var messageDialog = new MessageDialog("No internet connection has been found.");
// Add commands and set their callbacks; both buttons use the same callback function instead of inline event handlers
messageDialog.Commands.Add(new UICommand(
"Try again",
new UICommandInvokedHandler(this.CommandInvokedHandler)));
messageDialog.Commands.Add(new UICommand(
"Something else",
new UICommandInvokedHandler(this.CommandInvokedHandler)));
messageDialog.Commands.Add(new UICommand(
"Close",
new UICommandInvokedHandler(this.CommandInvokedHandler)));
// Set the command that will be invoked by default
messageDialog.DefaultCommandIndex = 0;
// Set the command to be invoked when escape is pressed
messageDialog.CancelCommandIndex = 1;
// Show …Run Code Online (Sandbox Code Playgroud) windows-runtime ×10
c# ×6
windows-8 ×4
winrt-xaml ×2
.net-4.5 ×1
arm ×1
binding ×1
build ×1
datareader ×1
deployment ×1
file-io ×1
ide ×1
sqlite ×1
windows-10 ×1
winjs ×1
wpf ×1
xaml ×1