2017-02-26 104 views
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處理這個什麼接近這個?

回答

3

編號Xamarin Mac不使用XAML。 Xamarin Forms可以,但它與WPF中使用的XAML不同。

+0

一般的控件如listview,gridview等呢?例如,它們是否存在並以相同的方式對綁定起作用? 我的進度條的工作方式是我有一個在下載過程中得到更新的XML文檔。名爲「Progess」的屬性會使用完成百分比進行更新,並且XAML進度欄將綁定到該屬性並能夠顯示進度。我將不得不爲Mac做不同的事情嗎? – Chris

+0

有一些類似的控件,但它們不會與Windows桌面控件相同。 – Jason

+0

我很欣賞這些反饋。我花了大約16個小時開發這個應用程序,我有一個開發人員說,它將花費接近200個小時在Xamarin Mac上做同樣的事情。我簡直不敢相信它會那麼複雜。我試圖爲Windows/Mac/Android和iOS開發一個用於下載文件的通用代碼庫,並且我開發的代碼 - 使用WebClient(一種XML文檔和控件綁定) - 對於這四個平臺來說似乎相當普遍。例如,沒有平臺相關的API。我有點卡住了?我想在這一點上。 – Chris

相關問題