1

Настройка моего приложения W10 шаблона из AppStudioНастройка моего приложения W10 шаблона из AppStudio

Привет всем, я новичок в программировании, и я хотел бы сделать приложение для Windows просто для удовольствия, пока это выглядит хорошо, однако. У меня проблема (в основном потому, что я не знаю, что я делаю). Но я хочу, чтобы RSS-канал открывал Edge вместо представления фида (вторая страница после нажатия на значок канала) Я нашел файл конфигурации для rss-канала (я назвал его новостью), но я не знаю, как заставьте его открыть новое окно по краю. Код находится по адресу:

Разделы \ NewsConfig.cs

Update: Это полный исходный код:

using System; 
using System.Collections.Generic; 
using AppStudio.DataProviders; 
using AppStudio.DataProviders.Core; 
using AppStudio.DataProviders.Rss; 
using AppStudio.Uwp.Actions; 
using AppStudio.Uwp.Commands; 
using AppStudio.Uwp.Navigation; 
using MyWindows10App.Config; 
using MyWindows10App.ViewModels; 

namespace MyWindows10App.Sections 
{ 
public class NewsConfig : SectionConfigBase<RssDataConfig, RssSchema> 
{ 
    public override DataProviderBase<RssDataConfig, RssSchema> DataProvider 
    { 
     get 
     { 
      return new RssDataProvider(); 
     } 
    } 

    public override RssDataConfig Config 
    { 
     get 
     { 
      return new RssDataConfig 
      { 
       Url = new Uri("https://localhost:804514/feed") 
      }; 
     } 
    } 

    public override NavigationInfo ListNavigationInfo 
    { 
     get 
     { 
      return NavigationInfo.FromPage("NewsListPage"); 
     } 
    } 

    public override ListPageConfig<RssSchema> ListPage 
    { 
     get 
     { 
      return new ListPageConfig<RssSchema> 
      { 
       Title = "News", 

       LayoutBindings = (viewModel, item) => 
       { 
        viewModel.Title = item.Title.ToSafeString(); 
        viewModel.SubTitle = item.Summary.ToSafeString(); 
        viewModel.Description = item.Summary.ToSafeString(); 
        viewModel.Image = item.ImageUrl.ToSafeString(); 
       }, 
       NavigationInfo = (item) => 
       { 
        return null; 
       } 
      }; 
     } 
    } 

    public override DetailPageConfig<RssSchema> DetailPage 
    { 
     get 
     { 
      var bindings = new List<Action<ItemViewModel, RssSchema>>(); 

      var actions = new List<ActionConfig<RssSchema>> 
      { 
      }; 

      return new DetailPageConfig<RssSchema> 
      { 
       Title = "News", 
       LayoutBindings = bindings, 
       Actions = actions 
      }; 
     } 
    } 

    public override string PageTitle 
    { 
     get { return "News"; } 
    } 
} 
} 

Update 2: здесь XAML на странице списка

<Page 
x:Class="MyWindows10App.Views.NewsListPage" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
xmlns:was_actions="using:AppStudio.Uwp.Actions" 
xmlns:was_commands="using:AppStudio.Uwp.Commands" 
xmlns:was_controls="using:AppStudio.Uwp.Controls" 
xmlns:layouts="using:MyWindows10App.Layouts" 
xmlns:list_layouts="using:MyWindows10App.Layouts.List" 
xmlns:controls="using:MyWindows10App.Layouts.Controls" 
xmlns:vm="using:MyWindows10App.ViewModels" 
xmlns:triggers="using:MyWindows10App.Triggers" 
DataContext="{Binding RelativeSource={RelativeSource Self}}" 
d:DataContext="{d:DesignData Source=/Assets/Design/DesignData.json, Type=vm:DesignViewModel, IsDesignTimeCreatable=true}" 
mc:Ignorable="d"> 
<Grid Background="{StaticResource AppBackground}"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="15"/> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="Auto"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*"/> 
     <ColumnDefinition Width="Auto"/> 
    </Grid.ColumnDefinitions> 
    <Grid Grid.Row="0" Grid.ColumnSpan="2" Background="{StaticResource AppBarBackground}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="48"/> 
    <TextBlock Grid.Row="0" Grid.Column="0" Margin="{Binding ViewModel.PageTitleMargin}" Text="{Binding ViewModel.PageTitle}" Foreground="{StaticResource AppBarForeground}" FontSize="21" VerticalAlignment="Center" HorizontalAlignment="Left" TextTrimming="WordEllipsis" MaxLines="1"/> 
    <was_actions:ActionsCommandBar 
     x:Name="appBar" 
     ActionsSource="{Binding ViewModel.Actions}" Style="{StaticResource WasCommandBarStyle}" 
     Foreground="{StaticResource AppBarForeground}" 
     IsVisible="{Binding ViewModel.HasActions}" 
     Background="{StaticResource AppBarBackground}" 
     Grid.Row="{Binding ViewModel.AppBarRow}" 
     Grid.Column="{Binding ViewModel.AppBarColumn}" 
     Grid.ColumnSpan="{Binding ViewModel.AppBarColumnSpan}"> 
    </was_actions:ActionsCommandBar> 
    <ProgressBar Grid.Row="1" Grid.ColumnSpan="2" Height="3" Margin="0,6,0,6" IsIndeterminate="True" Foreground="{StaticResource PageTitleForeground}" Visibility="{Binding ViewModel.IsBusy, Converter={StaticResource BoolToVisibilityConverter}, FallbackValue=Collapsed}"/> 
    <was_controls:ErrorNotificationControl Grid.ColumnSpan="2" x:Uid="ListErrorNotificationControl" Grid.Row="2" ErrorVisibility="{Binding ViewModel.HasLoadDataErrors, Converter={StaticResource BoolToVisibilityConverter}}" ErrorColor="{StaticResource PageTitleForeground}" Margin="10,0,18,0"/> 
    <list_layouts:ListBigHorizontalCardBox Grid.Row="3" Grid.ColumnSpan="2" DataContext="{Binding ViewModel}" ItemsSource="{Binding Items}" ItemClickCommand="{Binding ItemClickCommand}" OneRowModeEnabled="False" Margin="19,0,12,0" /> 
    <controls:DataUpdateInformationControl Grid.ColumnSpan="2" Grid.Row="4" LastUpdateDateTime="{Binding ViewModel.LastUpdated}" Color="{StaticResource PageTitleForeground}" Margin="8,4,8,4" HorizontalAlignment="Left" HasLocalData="{Binding ViewModel.HasLocalData}"/> 
</Grid> 
</Page> 

ответ

0

В приложениях UWP При выполнении навигации вы можете использовать схему URI или рекомендовать любое приложение для использования этого URI для открытия.

Вы можете использовать http URI scheme для запуска веб-браузера по умолчанию следующим образом

// The URI to launch 
    var uriFeed = new Uri(@"http://www.myblogfeed.com"); 

    // Launch the URI 
    var success = await Windows.System.Launcher.LaunchUriAsync(uriFeed); 

при запуске любой URI, вы можете также передать в LaucherOptions obect, где вы можете указать preferredApplication для URI, чтобы запустить его. Вот пример из msdn page.

// Set the recommended app 
var options = new Windows.System.LauncherOptions(); 
options.PreferredApplicationPackageFamilyName = "Contoso.URIApp_8wknc82po1e"; 
options.PreferredApplicationDisplayName = "Contoso URI Ap"; 

// Launch the URI and pass in the recommended app 
// in case the user has no apps installed to handle the URI 
var success = await Windows.System.Launcher.LaunchUriAsync(uriContoso, options); 
+0

Я думаю, что первый из них сделает трюк, однако я не хочу передавать URL-адрес блога, я бы хотел использовать URL-адрес сообщения. как я могу извлечь почтовый URL? – Dannny

+0

Я только что обновил сообщение со всем кодом – Dannny

+0

выше, похоже, не связан, чтобы получить ссылку, я думаю, что он должен уже брать вас к отдельным сообщениям, как только вы нажимаете на них? –

Смежные вопросы