小编Jus*_* XL的帖子

Windows 10 Universal Compiled绑定(x:Bind)与ViewModel冲突

我想用编译后的绑定将页面中的元素绑定到代码中的依赖项属性,同时用通常的绑定将另一个元素绑定到ViewModel。但这会导致运行时错误。

这是我的xaml代码。

<Page
x:Class="XbindingProblem.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:XbindingProblem"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
DataContext="{Binding Main, Source={StaticResource Locator}}"
mc:Ignorable="d">
<Page.Resources>
    <DataTemplate x:Key="UserDataTemplate" x:DataType="local:User">
        <StackPanel>
            <TextBlock Text="{x:Bind Name}" />
            <TextBlock Text="{x:Bind Age}" />
        </StackPanel>
    </DataTemplate>
</Page.Resources>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <StackPanel>
        <TextBlock Text="{Binding Title}"/>
        <ContentPresenter ContentTemplate="{StaticResource UserDataTemplate}" Content="{x:Bind CurrentUser, Mode=OneWay}"/>
    </StackPanel>        
</Grid>
Run Code Online (Sandbox Code Playgroud)

这里CurrentUser是依赖项属性,该属性最初为null,然后在运行时更改。这给出了以下运行时错误。

Incorrect type passed into template. Based on the x:DataType global::XbindingProblem.User was expected.
Run Code Online (Sandbox Code Playgroud)

问题在于,当CurrentUser为null时,它将ViewModel传递给UserDataTemplate而不是CurrentUser依赖项属性。

谁能对这个问题有一个很好的解释?

c# xaml win-universal-app uwp

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

如何在Windows Phone 8.1中使用Pivot控件(不是Silverlight应用程序)

任何人都可以告诉我哇在Windows 8.1(而不是Silverlight应用程序)中使用Pivot控件?我在代码中尝试了它,它在我运行应用程序时起作用.

但是无论如何要在Xaml中做到这一点?救命

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

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

检查 ContentDialog 是否打开

我有一个简单的问题。由于我一次只能COntentDialog打开一个,并且在关闭事件中ContentDialog我有一个条件,可以ContentDialog通过执行args.Cancel = true. 所以这样做ContentDialog.Hide()有时不能关闭ContentDialog,当再次打开对话框时会导致异常。因此,在任何对话框之前,我希望能够检查其他对话框是否已关闭。我怎样才能做到这一点 ?

c# xaml uwp

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

如何在UWP App中为列宽设置动画

在我的UWP应用程序中,我有一个有2列的网格.该应用程序是自适应的,在移动设备上我只想一次显示一列.有没有办法使用动画来减少第1列的宽度并从第2列扩展宽度,反之亦然?

c# animation xaml uwp uwp-xaml

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

Windows运行时组件与Windows Phone Silverlight 8.1

我有一个现有的Windows Phone 8应用程序,它基本上是一个警报应用程序.无论出于何种原因,新的Windows Phone RunTime都不支持Alarm类,因此我只能将其升级到Windows Phone Silverlight 8.1.

幸运的是,WP SL 8.1项目仍然能够引用Windows RunTime组件,因为我的目标是使用新的后台任务机制中的一些很酷的功能.

这是我的问题 -

我的应用程序当前使用独立存储来存储数据,而它不在前台,其后台任务项目需要从隔离存储中检索数据并将其显示在实时磁贴上.但是,由于此项目是Windows RunTime组件,因此它不再支持隔离存储...

所以,我讨厌问,但是,我是不是死路一条?

windows-phone windows-runtime windows-phone-8.1 windows-phone-sl-8.1

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

ContentDialog最大宽度

我正在尝试在我的应用中创建一个设置菜单

在此输入图像描述

我知道怎么做但是我对内容对话框的宽度有问题,显然宽度有限制.

这是我的内容对话框的代码:

Title="" Margin="12,0,-12,0" HorizontalAlignment="Stretch" Width="800" Height="600" VerticalAlignment="Stretch" Background="{x:Null}">
<Grid x:Name="Main" ScrollViewer.VerticalScrollBarVisibility="Auto" Width="800">
    <Grid.RowDefinitions>
        <RowDefinition Height="58"/>
        <RowDefinition Height="58"/>
        <RowDefinition/>
        <RowDefinition Height="76"/>
    </Grid.RowDefinitions>
    <TextBox x:Name="Title_TextBox" Text="" Margin="10,10,10,0" PlaceholderText="Please enter your story title..." RequestedTheme="Light" FontSize="16" MaxLength="50" Grid.Row="1" />
    <TextBox x:Name="Experience_Text" Text="" Grid.Row="2" Margin="10,10,10,0"  PlaceholderText="Please tell your experience..." MaxLength="500" FontSize="16" TextWrapping="Wrap" MinHeight="42" AcceptsReturn="True" RequestedTheme="Light" ScrollViewer.VerticalScrollBarVisibility="Auto" VerticalAlignment="Center" Height="190" />
    <Grid x:Name="CharacterGrid" Grid.Row="3" Margin="10,0">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="48"/>
            <ColumnDefinition Width="64"/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <TextBlock x:Name="CharacterLeft" Margin="0" TextWrapping="Wrap" Text="" TextAlignment="Right" FontSize="16" Grid.Column="2" VerticalAlignment="Top" RequestedTheme="Light" />
        <Button x:Name="CameraButton" …
Run Code Online (Sandbox Code Playgroud)

c# xaml uwp uwp-xaml

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

VisualStateManager未在UWP应用程序中设置附加属性Grid.Row和Grid.ColumnSpan

我正在尝试在Windows 10 Universal App项目中使用VisualStateManager更改某些附加属性,但设置器无法正常工作。它没有设置TopBarGrid元素的附加属性。

如果您在下面看,我正在使用括号符号来更改Grid.RowGrid.ColumnSpan属性。但是,当我运行该应用程序时,当我扩大宽度时并没有设置属性。我期望网格移动到那个位置。

这是我的代码:

<Grid>
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup>
            <VisualState x:Name="wideState">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="641" />
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="splitView.DisplayMode" Value="Inline"/>
                    <Setter Target="splitView.IsPaneOpen" Value="True"/>
                    <Setter Target="togglePaneButton.Visibility" Value="Collapsed"/>
                    <Setter Target="appHeader.Margin" Value="0,0,0,0"/>
                    <Setter Target="PaneHeader.Margin" Value="6,12,0,0"/>
                    <Setter Target="TopBarGrid.(Grid.Column)" Value="0"/>
                    <Setter Target="TopBarGrid.(Grid.RowSpan)" Value="2"/>
                </VisualState.Setters>
            </VisualState>
            <VisualState x:Name="narrowState">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="0" />
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="splitView.DisplayMode" Value="Overlay"/>
                    <Setter Target="togglePaneButton.Visibility" Value="Visible"/>
                    <Setter Target="PaneHeader.Margin" Value="60,12,0,0"/>
                    <Setter Target="searchForInfoBox.Width" Value="270"/>
                </VisualState.Setters>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
    <Grid.RowDefinitions>
        <RowDefinition x:Name="TopRowHeight" Height="80"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="60"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/> …
Run Code Online (Sandbox Code Playgroud)

xaml winrt-xaml win-universal-app windows-10-mobile uwp

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

UWP:将InlineUIContainer添加到超链接失败

在我的UWP(通用Windows平台)应用程序中,我需要创建一个Hyperlink带有图像的元素:

var hyperlink = new Hyperlink();
var container = new InlineUIContainer { Child = new Image() { ... } }; 
hyperlink.Inlines.Add(container);
Run Code Online (Sandbox Code Playgroud)

Hyperlink被后来加入到TextBlock与其他元素结合在一起.我的问题是,最后一行(Inlines.Add())抛出异常:

Exception thrown: 'System.ArgumentException' in mscorlib.ni.dll
Additional information: Value does not fall within the expected range.
Run Code Online (Sandbox Code Playgroud)

有人知道解决这个问题的方法吗?

c# xaml win-universal-app uwp

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