标签: windows-runtime

如何刷新Metro风格应用的UI?

我正在尝试刷新/更新Metro风格应用的UI以反映更改.
要重新绘制Windows窗体中的控件,您只需使用:

this.Refresh();    
Run Code Online (Sandbox Code Playgroud)

如何在Metro Style应用程序中获得类似的结果?

在C#中考虑这个简单的例子:

private async void Button_Click(object sender, RoutedEventArgs e)
{
    btnStatus.Content = "Test started";
    Task.Delay(3000); // Wait 3 seconds
    btnStatus.Content = "Test Ended"
} 
Run Code Online (Sandbox Code Playgroud)

我需要做的是:显示"开始"消息,等待几秒钟,然后显示"结束"消息.但是,当它运行时,btnStatus会立即显示"TestEnded" - 就好像前两个语句没有执行一样.

我怎样才能解决这个问题?

我看过:如何在Metro应用程序中刷新UI?但它没有帮助.

c# xaml microsoft-metro windows-8 windows-runtime

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

std :: shared_ptr <Type>和Type ^之间的区别

我真的不明白在C++/CX中shared_ptr和新句柄符号(^)之间的区别.根据我的阅读,他们似乎在引用计数和内存管理方面做同样的事情.我错过了什么?

std::shared_ptr<Type>
//vs
Type^
Run Code Online (Sandbox Code Playgroud)

c++ c++11 windows-runtime c++-cx

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

如何在WinJS应用程序中使用嵌入式浏览器嵌入第三方网页?

使用C#/ XAML开发Windows 8应用程序时,可以使用WebView控件将第三方Web页面嵌入到应用程序中.

WinJS的等价物是什么?IFrame的?HTMLControl时?

我的要求是我正在构建一个内容阅读器应用程序,我需要能够在应用程序中呈现第三方网页,而无需炸毁WinJS安全沙箱或不从每个第三方网络中删除相关内容页.

windows windows-8 windows-runtime winjs

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

线程安全性C++/CX WinRT指针的引用计数

根据用例,我的印象是对WinRT对象的引用计数是线程安全的.但我遇到了一个我不知道其他任何解释方式的错误.例如,以下代码崩溃很快:

ref class C sealed {
public:
    C() { }
    virtual ~C() {}
};

[Windows::Foundation::Metadata::WebHostHidden]
public ref class MainPage sealed {
public:
    MainPage() : _latest(nullptr) {
        InitializeComponent();
        Windows::System::Threading::ThreadPool::RunAsync(
            ref new Windows::System::Threading::WorkItemHandler(
                this, 
                &MainPage::SetLatest));
        Windows::System::Threading::ThreadPool::RunAsync(
            ref new Windows::System::Threading::WorkItemHandler(
                this, 
                &MainPage::OnRendering));
    }
    virtual ~MainPage(){}
private:
    C^ _latest;
    void SetLatest(Windows::Foundation::IAsyncAction^ operation){
        while (true) {
            _latest = ref new C(); 
        }
    }
    void OnRendering(Windows::Foundation::IAsyncAction^ operation) {
        while (true) {
            auto c = _latest;
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

C^当读/写比赛时,WinRT指针(即类似的ref类)是否应该被正确引用?是否有一个我不知道的单独问题,造成这次崩溃?

pointers reference-counting windows-runtime c++-cx

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

使用json.net将xml转换为json

我尝试用Json.Net将我的XML String转换为Json

在Json.Net 文档中,它说我必须使用此代码将xml转换为json:

string xml = @"<person id='1'>
         <name>Alan</name>
        <url>http://www.google.com</url>
         <role>Admin1</role>
     </person>";

 XmlDocument doc = new XmlDocument();
 doc.LoadXml(xml);

string json = JsonConvert.SerializeXmlNode(doc);
Run Code Online (Sandbox Code Playgroud)

但在我的Windows 8 App中,我找不到XmlDocument类既没有Seri​​alizeXmlNode.

我尝试了这些类和函数:

 var result = await response.Content.ReadAsStringAsync();
 XDocument xdoc = new XDocument();
 xdoc = XDocument.Load(result);
 // Parse the JSON Radio data
 string jsonText = JsonConvert.SerializeXNode(xdoc);
 var radios = JsonArray.Parse(result);
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

An exception of type 'System.ArgumentException' occurred in mscorlib.dll but was not handled in user code

Additional information: Illegal characters in path.

If there is …
Run Code Online (Sandbox Code Playgroud)

c# xml json json.net windows-runtime

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

Win RT Metro C#MVVM从工作线程更新UI

我有工人阶级

public event EventHandler<EventArgs> DataModified;
Run Code Online (Sandbox Code Playgroud)

可以从UI线程之外引出(它是从服务器获取更新的网络客户端).我有ModelView

ObservableCollection<DataModel> DataItems;
Run Code Online (Sandbox Code Playgroud)

视图绑定到哪个.我的modelview必须订阅ModifiedEvent,因此它可以反映DataItems中的更改.如何从回调事件更新DataItems?我无法从模型视图访问UI Dispatcher(因为视图不应该知道模型视图).什么是正确的.NET 4.5方式来处理这个?

user-interface multithreading mvvm microsoft-metro windows-runtime

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

为什么不使用条件运算符从整数到字节的隐式转换?

字节的MSDN页面表示您可以声明这样的字节:

byte myByte = 255;
Run Code Online (Sandbox Code Playgroud)

然后

在前面的声明中,整数文字255被隐式地从int转换为byte.如果整数文字超出字节范围,则会发生编译错误.

所以我很难理解为什么以下给我一个编译错误''无法隐式转换类型'int'到'byte')

byte value = on ? 1 : 0; // on is defined as a bool earlier
Run Code Online (Sandbox Code Playgroud)

我在VS 2012上将其编译为Windows Store App项目,如果这有任何区别的话.

c# windows-runtime

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

数据绑定可观察的字符串集合

我有以下课程:

public class MyClass
{
    public ObservableCollection<string> MyList { get; set; }
    public string MyListTitle { get; set; }
...
Run Code Online (Sandbox Code Playgroud)

我将其填充如下:

MyClass myClass = new MyClass("Data"); // Populates title

myClass.MyList.Add("Test data 1");
myClass.MyList.Add("Test data 2");

myListView.DataContext = MyClass.MyList;
Run Code Online (Sandbox Code Playgroud)

最后,这是XAML:

<ListView Visibility="Visible" x:Name="myListView" Height="Auto">
    <ScrollViewer x:Name="contentScrollView">
        <TextBlock x:Name="DataItem" Text="{Binding}" />                                
    </ScrollViewer>
</ListView>
Run Code Online (Sandbox Code Playgroud)

结果(和问题)是我在列表视图中一次显示了类名,而不是上面的两个条目。

c# xaml windows-8 windows-runtime .net-4.5

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

在Windows 8中禁用操作惯性

Windows 8操作事件默认情况下应用惯性,如本文所述,即操作delta事件在用户抬起手指后继续触发.

有谁知道如何"调整"或禁用这种惯性?我尝试过处理ManipulationInertiaStarting和设置e.Handled=true,但这并没有禁用惯性.

有任何想法吗?

windows-8 windows-runtime winrt-xaml windows-store-apps

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

Windows 8 XAMl C#在文本框中添加水印?

如何在Windows 8应用程序的WINRT XAML C#代码中为文本框添加水印.有一个工具提示的直接属性,但同样不适用于Watermark,那么实现这一目的的最短有效方法是什么?

c# xaml windows-8 windows-runtime

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