1
我無法訪問Macintosh來測試它(即我無法加載Xamarin Mac組件),所以我沒有辦法測試它。但是...下面是WPF應用程序的XAML。應用程序中的大部分內容似乎都是符合Xamarin的--WebClient調用,例如通過XMLDocument和綁定填充表單字段 - 但我不知道XAML是否符合規範。所以,在這裏,它是:是否可將XAML文件移植到Xamarin Macintosh?
<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 [email protected],StringFormat='Artist: {0}'}"
FontSize="16px"
/>
<TextBlock
Text="{Binding [email protected],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 [email protected]}" 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 [email protected], 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 [email protected], 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處理這個什麼接近這個?
一般的控件如listview,gridview等呢?例如,它們是否存在並以相同的方式對綁定起作用? 我的進度條的工作方式是我有一個在下載過程中得到更新的XML文檔。名爲「Progess」的- 屬性會使用完成百分比進行更新,並且XAML進度欄將綁定到該屬性並能夠顯示進度。我將不得不爲Mac做不同的事情嗎? –
Chris
有一些類似的控件,但它們不會與Windows桌面控件相同。 – Jason
我很欣賞這些反饋。我花了大約16個小時開發這個應用程序,我有一個開發人員說,它將花費接近200個小時在Xamarin Mac上做同樣的事情。我簡直不敢相信它會那麼複雜。我試圖爲Windows/Mac/Android和iOS開發一個用於下載文件的通用代碼庫,並且我開發的代碼 - 使用WebClient(一種XML文檔和控件綁定) - 對於這四個平臺來說似乎相當普遍。例如,沒有平臺相關的API。我有點卡住了?我想在這一點上。 – Chris