我正在尝试刷新/更新Metro风格应用的UI以反映更改.
要重新绘制Windows窗体中的控件,您只需使用:
this.Refresh();    
如何在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"
} 
我需要做的是:显示"开始"消息,等待几秒钟,然后显示"结束"消息.但是,当它运行时,btnStatus会立即显示"TestEnded" - 就好像前两个语句没有执行一样.
我怎样才能解决这个问题?
我看过:如何在Metro应用程序中刷新UI?但它没有帮助.
我真的不明白在C++/CX中shared_ptr和新句柄符号(^)之间的区别.根据我的阅读,他们似乎在引用计数和内存管理方面做同样的事情.我错过了什么?
std::shared_ptr<Type>
//vs
Type^
使用C#/ XAML开发Windows 8应用程序时,可以使用WebView控件将第三方Web页面嵌入到应用程序中.
WinJS的等价物是什么?IFrame的?HTMLControl时?
我的要求是我正在构建一个内容阅读器应用程序,我需要能够在应用程序中呈现第三方网页,而无需炸毁WinJS安全沙箱或不从每个第三方网络中删除相关内容页.
根据用例,我的印象是对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;
        }
    }
};
C^当读/写比赛时,WinRT指针(即类似的ref类)是否应该被正确引用?是否有一个我不知道的单独问题,造成这次崩溃?
我尝试用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);
但在我的Windows 8 App中,我找不到XmlDocument类既没有SerializeXmlNode.
我尝试了这些类和函数:
 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);
但是我收到以下错误:
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 …我有工人阶级
public event EventHandler<EventArgs> DataModified;
可以从UI线程之外引出(它是从服务器获取更新的网络客户端).我有ModelView
ObservableCollection<DataModel> DataItems;
视图绑定到哪个.我的modelview必须订阅ModifiedEvent,因此它可以反映DataItems中的更改.如何从回调事件更新DataItems?我无法从模型视图访问UI Dispatcher(因为视图不应该知道模型视图).什么是正确的.NET 4.5方式来处理这个?
user-interface multithreading mvvm microsoft-metro windows-runtime
字节的MSDN页面表示您可以声明这样的字节:
byte myByte = 255;
然后
在前面的声明中,整数文字255被隐式地从int转换为byte.如果整数文字超出字节范围,则会发生编译错误.
所以我很难理解为什么以下给我一个编译错误''无法隐式转换类型'int'到'byte')
byte value = on ? 1 : 0; // on is defined as a bool earlier
我在VS 2012上将其编译为Windows Store App项目,如果这有任何区别的话.
我有以下课程:
public class MyClass
{
    public ObservableCollection<string> MyList { get; set; }
    public string MyListTitle { get; set; }
...
我将其填充如下:
MyClass myClass = new MyClass("Data"); // Populates title
myClass.MyList.Add("Test data 1");
myClass.MyList.Add("Test data 2");
myListView.DataContext = MyClass.MyList;
最后,这是XAML:
<ListView Visibility="Visible" x:Name="myListView" Height="Auto">
    <ScrollViewer x:Name="contentScrollView">
        <TextBlock x:Name="DataItem" Text="{Binding}" />                                
    </ScrollViewer>
</ListView>
结果(和问题)是我在列表视图中一次显示了类名,而不是上面的两个条目。
Windows 8操作事件默认情况下应用惯性,如本文所述,即操作delta事件在用户抬起手指后继续触发.
有谁知道如何"调整"或禁用这种惯性?我尝试过处理ManipulationInertiaStarting和设置e.Handled=true,但这并没有禁用惯性.
有任何想法吗?
如何在Windows 8应用程序的WINRT XAML C#代码中为文本框添加水印.有一个工具提示的直接属性,但同样不适用于Watermark,那么实现这一目的的最短有效方法是什么?