小编Nic*_*SFT的帖子

从形状派生的类会产生施法错误

我在UWP项目中有一个派生自Windows.UI.Xaml.Shapes.Shape的类:

public class Hex : Windows.UI.Xaml.Shapes.Shape
{
    public Hex()
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

当我试图在mainPage.cs中实例化这个类的新成员时,我得到一个InvalidCastException,如下所示:

System.InvalidCastException: Specified cast is not valid.
       at Windows.UI.Xaml.Shapes.Shape..ctor()
       at App1.Hex..ctor()
       at App1.MainPage.Button_Click(Object sender, RoutedEventArgs e)
Run Code Online (Sandbox Code Playgroud)

这是mainPage.cs中的代码

private void Button_Click(object sender, RoutedEventArgs e)
{
    var h = new Hex();
    h.Width = 20;
}
Run Code Online (Sandbox Code Playgroud)

但两种方式都不起作用.据我所知,Shape的受保护构造函数应该能够从派生类访问,那么发生了什么?从Windows.UI.Xaml.Frameworkelemnt派生同样的事情没有问题.

c# uwp

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

如何在 appxmanifest 中自动提供版本?

我正在将桌面桥用于 WPF 桌面应用程序,并希望在构建过程中自动创建 msix 包。我不想在源代码管理中存储任何版本信息。

解决方案中的 WPF 项目使用gitversion msbuild 任务在每次构建完成时自动推断可执行文件的版本。不幸的是,我不确定.appxmanifest.

我的想法是,如果能将其与构建过程完美集成(类似于 gitversion),那就太好了,但我无法找到任何有关构建或创建应用程序包过程中的选项的文档。

也许在构建过程中存在一些我不知道可以对 进行的转换步骤.appxmanifest?或者也许有一种方法可以让版本始终反映捆绑的可执行文件的版本?

MSDN论坛问题

msbuild wpf continuous-integration appxmanifest desktop-bridge

7
推荐指数
2
解决办法
1665
查看次数

错误MCG0004:InternalAssert断言在发布模式下构建UWP应用程序时失败

我有一个用C#编写的UWP应用程序(在Windows 10.0.14393上为VS 14.0.25425.01 Update 3,项目的目标版本为build 14393)并在Debug模式下运行,但无法在Release模式下构建,但出现以下错误:

Microsoft.NetNative.targets(640,5):错误:MCG0004:InternalAssert Assert Failed:在[UNKNOWN]期间找不到字段

没有进一步的细节,除了之前的两个警告,我不确定它们是否与问题有关:

Resources.System.Linq.Expressions.rd.xml(35):warning:ILTransform:warning ILT0027:找不到'System.Linq.Expressions.Expression'中的方法'CreateLambda'.Resources.System.Linq.Expressions.rd.xml(91):warning:ILTransform:warning ILT0027:找不到'System.Linq.Expressions.Expression'中的方法'ParameterIsAssignable'.

有什么建议可以与这个问题有关吗?

c# msbuild .net-native uwp

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

蓝牙 LE 设备无法在 Win 10 IoT UWP 应用程序中断开连接

我试图在我的 Win 10 IoT UWP C# 应用程序中控制蓝牙 LE 设备的连接/断开,在 Raspberry Pi 3 SBC 上运行。Win 10 IoT 是 Windows Insiders Preview 版本 10.0.17035.1000。当我启动我的应用程序时,它识别广告 BLE 设备,成功连接并与之通信。然后我尝试通过应用推荐的程序断开此设备的连接:

device.Dispose();

设备 = 空;

GC.Collect();

甚至停止并重新启动 BluetoothLEAdvertisementWatcher。但是当这个设备再次开始广告时,它就无法识别了。据我了解,原因是该设备实际上并未断开连接(尽管它显示断开连接状态)或某些连接信息仍处于待处理状态,这会阻止它在新广告中被识别。

即使我不应用上述程序,也无法识别新设备广告(来自相同或其他 BLE 设备),在这两种情况下,唯一的方法是重新启动 Win 10 IoT 并重新启动应用程序以获取新广告从同一设备被识别。与设备的通信完成后,可以识别来自不同设备的同一类型的广告。但是当第二个设备完成通信时,不能再次识别来自它或第一个设备的新广告。在调试模式下没有报告异常或其他问题。这在应用程序生产版本中确实是不可接受的。

请告诉我如何解决这个问题。谢谢。

windows-10-iot-core uwp

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

当前正在从Windows 10'正在播放'卡中播放歌曲

是否可以查询在Windows 10上播放音乐时显示的元数据?

http://i63.tinypic.com/1q00mc.jpg

虽然我发现了有关MediaPlayer通过SMTC等从中显示元数据的信息,但我找不到任何方法(该过程本身不会播放任何媒体)来简单地读取相同的元数据。

windows-10 uwp

5
推荐指数
2
解决办法
392
查看次数

UWP - 来自不同样式资源字典的引用 StaticResource:无法分配给属性“Windows.UI.Xaml.ResourceDictionary.Source”

你好,我的团队和我最近开始开发一个 win10 uwp 应用程序。应用程序将有很多视图和组件,因此预计会大量使用样式,因此我们需要通过文件/文件夹结构来组织我们的样式,我们使用以下结构(不幸的是,我无法嵌入图像,请参阅链接):

https://i.stack.imgur.com/XvW0u.png

无论如何,我的 Resource.xaml 将所有其他字典合并如下:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/Resources/Colors.xaml" />
        <ResourceDictionary Source="/Resources/Icons.xaml" />
        <ResourceDictionary Source="/Resources/Fonts.xaml" />
        <ResourceDictionary Source="/Resources/Converters.xaml" />
        <ResourceDictionary Source="/Resources/Buttons.xaml" />
        <ResourceDictionary Source="/Resources/RadioButton.xaml" />
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)

在我的 App.xaml 中,我引用了这本词典:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Resources/Resources.xaml" />
        </ResourceDictionary.MergedDictionaries>
        <vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />
    </ResourceDictionary>
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)

现在我设法在 RadioButton.xaml 中找到了问题的根源,我使用 StaticResource 查找引用了 Colors.xaml 中定义的画笔:

<Setter Property="Foreground" Value="{StaticResource TopMenuTextBrush}" />
Run Code Online (Sandbox Code Playgroud)

如果我删除这一行,一切都会开始,但我得到以下异常:

  • 异常 {Windows.UI.Xaml.Markup.XamlParseException:找不到与此错误代码关联的文本。

无法分配给属性“Windows.UI.Xaml.ResourceDictionary.Source”,因为无法将“Windows.Foundation.String”类型分配给“Windows.Foundation.Uri”类型。[行:28 位置:37]} System.Exception {Windows.UI.Xaml.Markup.XamlParseException}

有趣的是,当我用这一行注释启动应用程序并取消注释它时,visual studio 将识别画笔并正确应用它,它只会在应用程序启动时中断。我们之前在开发 WPF 时使用了相同的方法,所以我认为这可能与应用程序部署有关。

非常感谢所有帮助。

c# xaml uwp windows-10-universal uwp-xaml

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

使用 UWP 通过拖放重新排序可绑定列表视图

我试图ListView 通过拖放重新排序,它在使用静态项目时与我一起工作,但是当我使用itemsSorce绑定数据时绑定数据时,拖动工作正常,但我无法删除该项目,这是我的代码

C#:

lstSrvMenu.ItemsSource = Menue.MainItems.Where(m => int.Parse(m.GroupID) > 0);
Run Code Online (Sandbox Code Playgroud)

XAML:

<ListView Name="lstSrvMenu" Margin="0,40,0,0" AllowDrop="True" CanDragItems="True" CanReorderItems="True" IsSwipeEnabled="true">
    <ListView.ItemTemplate>
      <DataTemplate>
         <TextBlock Text="{Binding GroupTDesc}" TextWrapping="WrapWholeWords" VerticalAlignment="Center" HorizontalAlignment="Left"/>
      </DataTemplate>
    </ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)

c# xaml listview drag-and-drop uwp

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