C# XAML文件是否可移植到Xamarin Macintosh?

C# XAML文件是否可移植到Xamarin Macintosh?,c#,wpf,xaml,xamarin.ios,xamarin.mac,C#,Wpf,Xaml,Xamarin.ios,Xamarin.mac,我没有权限在Macintosh上进行测试(也就是说,我无法加载Xamarin Mac组件),所以我没有办法进行测试。但是…下面是WPF应用程序的XAML。应用程序中的大部分内容似乎都与Xamarin兼容——比如WebClient调用,通过XMLDocument和绑定填充我的表单字段——但我不知道XAML是否兼容。这就是: <Window x:Class="IMManager.ImManagerWindow" xmlns="http://schemas.microsoft.com/winf

我没有权限在Macintosh上进行测试(也就是说,我无法加载Xamarin Mac组件),所以我没有办法进行测试。但是…下面是WPF应用程序的XAML。应用程序中的大部分内容似乎都与Xamarin兼容——比如WebClient调用,通过XMLDocument和绑定填充我的表单字段——但我不知道XAML是否兼容。这就是:

<Window x:Class="IMManager.ImManagerWindow" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="IMM Media Manager" 
    SnapsToDevicePixels="True" 
    WindowState="Normal" 
    MaxWidth="720" 
    ResizeMode="NoResize" 
    WindowStartupLocation="CenterScreen">

<Window.Resources>
    <Style x:Key="AlternatingListViewItemStyle" TargetType="{x:Type ListViewItem}">
        <Style.Triggers>
            <!-- setting up triggers for alternate background colors -->
            <Trigger Property="ItemsControl.AlternationIndex" Value="1">
                <Setter Property="Background" Value="LightGray"></Setter>
            </Trigger>
            <Trigger Property="ItemsControl.AlternationIndex" Value="2">
                <Setter Property="Background" Value="White"></Setter>
            </Trigger>
        </Style.Triggers>
        <!-- setting row height here -->
        <Setter Property="Height" Value="25" />
    </Style>

</Window.Resources>
<ListView x:Name="LvAlbums" ItemsSource="{Binding XPath=/downloads/Album}" Width="680">
    <ListView.ItemTemplate>
        <DataTemplate x:Name="dt1">
            <StackPanel x:Name="spAlbum" HorizontalAlignment="Left">
                <TextBlock 
                    Text="{Binding XPath=@Artist,StringFormat='Artist: {0}'}"
                    FontSize="16px"
                    />
                <TextBlock 
                    Text="{Binding XPath=@Name,StringFormat='Album: {0}'}"
                    FontSize="16px"
                    />
                <ListView x:Name="lvTracks" ItemsSource="{Binding XPath=Item}" ItemContainerStyle="{StaticResource AlternatingListViewItemStyle}"   AlternationCount="2">
                    <ListView.View>
                        <GridView>
                            <GridViewColumn Header="Track" Width="460">
                                <GridViewColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock x:Name="trackName" Text="{Binding XPath=@Name}" Width="450" LineHeight="25" Height="25" VerticalAlignment="Center" Margin="0,3,0,0">
                                        </TextBlock>
                                    </DataTemplate>
                                </GridViewColumn.CellTemplate>
                            </GridViewColumn>
                            <GridViewColumn Header="Progress" Width="175">
                                <GridViewColumn.CellTemplate>
                                    <DataTemplate>
                                        <Canvas VerticalAlignment="Center" Height="25">
                                            <ProgressBar Foreground="GreenYellow" Name="PbStatus" Value="{Binding XPath=@Progress, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Minimum="0" Maximum="100" Height="20" VerticalAlignment="Center"  Margin="0,3,0,0" Width="165"/>
                                            <TextBlock FontFamily="Segoe UI" LineHeight="25" FontWeight="Bold"  Text="{Binding XPath=@Info, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" Height="20" Width="165" VerticalAlignment="Center" Margin="0,4,0,0"/>
                                        </Canvas>
                                    </DataTemplate>
                                </GridViewColumn.CellTemplate>
                            </GridViewColumn>
                        </GridView>
                    </ListView.View>
                </ListView>
            </StackPanel>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>


Mac Xamarin是否可以处理此问题或类似问题?

否。Xamarin Mac不使用XAML。Xamarin表单确实如此,但它的语法与WPF中使用的XAML不同

listview、gridview等常规控件怎么样?例如,它们的存在和功能是否与绑定相同?我的进度条的工作方式是,我有一个在下载过程中更新的XML文档。名为“Progess”的属性将使用完成百分比进行更新,XAML进度条将绑定到该属性并能够显示进度。我是否必须对Mac电脑做不同的操作?有一些类似的控件,但它们不会与Windows桌面控件完全相同。我感谢您的反馈。我花了大约16个小时开发这个应用程序,我有一个开发人员说,在Xamarin Mac上做同样的事情需要将近200个小时。我真不敢相信事情会这么复杂。我正在尝试为Windows/Mac/Android和iOS开发一个用于下载文件的通用代码库,我开发的代码——使用WebClient、XML文档和控件绑定——似乎对这4个平台相当通用。例如,没有依赖于平台的API。我有点困了?我想在这一点上,根据您的时间框架,您可能需要考虑XAMARIN窗体。它应该在未来的版本中增加对Mac桌面的支持。它已经支持UWP(但不支持WPF)。我同意200小时似乎很高。如果您需要第二种意见,请与我联系(参见我的个人资料)。