XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEWarframe

【WinUI】基于Warframe游戏本体的公开服务器以及安装器

公开
关注 0 Fork 0 Star 0
UTF-8
<Page xmlns:loc="using:XFEWarframe.Desktop.Editing" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:models="using:XFEWarframe.Desktop.Editing" xmlns:controls="using:XFEWarframe.Desktop.Editing" xmlns:ct="using:CommunityToolkit.WinUI.Controls" x:Class="XFEWarframe.Admin.Views.EditorPage">
  <Grid Padding="28,24,28,24" RowSpacing="18">
    <Grid.RowDefinitions>
      <RowDefinition Height="Auto"/>
      <RowDefinition Height="Auto"/>
      <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <StackPanel Spacing="6">
      <TextBlock Text="{x:Bind ViewModel.PageTitle, Mode=OneWay}" Style="{StaticResource PageTitleStyle}"/>
      <TextBlock Text="{loc:Translate Key=ui_3cd108b68bf31623}" Style="{StaticResource MutedTextStyle}"/>
      <StackPanel Orientation="Horizontal" Spacing="24" Margin="0,8,0,0">
        <RadioButton IsEnabled="{x:Bind ViewModel.IsIdle, Mode=OneWay}" GroupName="InventoryMode" Content="{loc:Translate Key=ui_833ee1d6a0926f7a}" IsChecked="{x:Bind ViewModel.IsOwnedMode, Mode=OneWay}" Command="{x:Bind ViewModel.ShowOwnedCommand}"/>
        <RadioButton IsEnabled="{x:Bind ViewModel.IsIdle, Mode=OneWay}" GroupName="InventoryMode" Content="{loc:Translate Key=ui_61a6505b08fa9ca4}" IsChecked="{x:Bind ViewModel.IsCatalogMode, Mode=OneWay}" Command="{x:Bind ViewModel.ShowCatalogCommand}" Visibility="{x:Bind ViewModel.CatalogToggleVisibility, Mode=OneWay}"/>
      </StackPanel>
    </StackPanel>
    <ContentControl Grid.Row="1" IsEnabled="{x:Bind ViewModel.IsIdle, Mode=OneWay}" HorizontalContentAlignment="Stretch">
      <Grid ColumnSpacing="12">
        <Grid.ColumnDefinitions>
          <ColumnDefinition Width="*"/>
          <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        <AutoSuggestBox Header="{loc:Translate Key=ui_991e63fe292063b6}" loc:Suggestions.Candidates="{x:Bind ViewModel.Accounts}" DisplayMemberPath="Label" loc:Suggestions.SelectedItem="{x:Bind ViewModel.SelectedAccount, Mode=TwoWay}" HorizontalAlignment="Stretch" loc:Suggestions.IsSelectionRequired="True"/>
        <Button Grid.Column="1" Visibility="{x:Bind ViewModel.OwnedVisibility, Mode=OneWay}" Content="{loc:Translate Key=ui_582782c4808077ec}" Command="{x:Bind ViewModel.RefreshCommand}" VerticalAlignment="Bottom"/>
      </Grid>
    </ContentControl>
    <Grid Grid.Row="2" RowSpacing="16" Visibility="{x:Bind ViewModel.EquipmentVisibility, Mode=OneWay}">
      <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>
      </Grid.RowDefinitions>
      <Grid ColumnSpacing="12">
        <Grid.ColumnDefinitions>
          <ColumnDefinition Width="*"/>
          <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        <AutoSuggestBox x:Name="OwnedSearch" loc:Suggestions.SearchOnTextChanged="True" loc:Suggestions.CanSearch="{x:Bind ViewModel.IsIdle, Mode=OneWay}" PlaceholderText="{loc:Translate Key=ui_960dafb98e920c1d}" Text="{x:Bind ViewModel.Query, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="Label" loc:Suggestions.Provider="{x:Bind ViewModel.Suggestions}" loc:Suggestions.Context="{x:Bind ViewModel.Category, Mode=OneWay}" loc:Suggestions.SecondaryContext="{x:Bind ViewModel.SelectedAccount, Mode=OneWay}" loc:Suggestions.SubmitCommand="{x:Bind ViewModel.RefreshCommand}"/>
        <StackPanel Orientation="Horizontal" Spacing="10" Grid.Column="1">
          <loc:FormDialogButton x:Name="AddQuestButton" Content="{loc:Translate Key=ui_a7ab4f0b44e38bcf}" DialogTitle="{loc:Translate Key=ui_5ec7d78812e57363}" PrimaryText="{loc:Translate Key=ui_bf9503e2958c1814}" PrepareCommand="{x:Bind ViewModel.PrepareQuestCommand}" PrimaryCommand="{x:Bind ViewModel.AddQuestCommand}" Visibility="{x:Bind ViewModel.QuestCreationVisibility, Mode=OneWay}" IsEnabled="{x:Bind ViewModel.IsIdle, Mode=OneWay}" ErrorText="{x:Bind ViewModel.LastError, Mode=OneWay}" IsWorking="{x:Bind ViewModel.IsBusy, Mode=OneWay}">
            <loc:FormDialogButton.Form>
              <StackPanel Spacing="16">
                <TextBlock Text="{loc:Translate Key=ui_63bbf5fcb4744205}" TextWrapping="Wrap"/>
                <loc:EditorForm Fields="{x:Bind ViewModel.QuestFields, Mode=OneWay}"/>
              </StackPanel>
            </loc:FormDialogButton.Form>
          </loc:FormDialogButton>
          <Button x:Name="OpenDetailsButton" Content="{loc:Translate Key=ui_051836569928a9f9}" Command="{x:Bind ViewModel.EditItemCommand}" IsEnabled="{x:Bind ViewModel.IsIdle, Mode=OneWay}" Visibility="{x:Bind ViewModel.DetailButtonVisibility, Mode=OneWay}"/>
          <loc:FormDialogButton Content="{loc:Translate Key=ui_71fc0d7bb2297a2d}" DialogTitle="{x:Bind ViewModel.SelectionLabel, Mode=OneWay}" HorizontalAlignment="Left" PrimaryCommand="{x:Bind ViewModel.SaveCommand}" PrimaryText="{loc:Translate Key=ui_a3030bf8f16dc63c}" PrepareCommand="{x:Bind ViewModel.PrepareEditorCommand}" x:Name="EditDialogButton" CanSubmit="{x:Bind ViewModel.CanSave, Mode=OneWay}" Ready="{x:Bind ViewModel.CanSave, Mode=OneWay}" IsEnabled="{x:Bind ViewModel.IsIdle, Mode=OneWay}" ErrorText="{x:Bind ViewModel.LastError, Mode=OneWay}" CanceledCommand="{x:Bind ViewModel.CancelEditCommand}" IsWorking="{x:Bind ViewModel.IsBusy, Mode=OneWay}" Visibility="{x:Bind ViewModel.ActionDialogVisibility, Mode=OneWay}">
            <loc:FormDialogButton.Form>
              <StackPanel Spacing="16">
                <TextBlock Text="{x:Bind ViewModel.EquipmentSummary, Mode=OneWay}" TextWrapping="Wrap" Opacity="0.7"/>
                <InfoBar IsOpen="{x:Bind ViewModel.HasChangeNotice, Mode=OneWay}" IsClosable="False" Severity="Warning" Message="{x:Bind ViewModel.ChangeNotice, Mode=OneWay}"/>
                <ComboBox Header="{loc:Translate Key=ui_9bb2e2c45565f015}" ItemsSource="{x:Bind ViewModel.Actions}" SelectedItem="{x:Bind ViewModel.SelectedAction, Mode=TwoWay}" DisplayMemberPath="Label" HorizontalAlignment="Stretch"/>
                <TextBlock Text="{x:Bind ViewModel.Description, Mode=OneWay}" Style="{StaticResource MutedTextStyle}" TextWrapping="Wrap"/>
                <loc:EditorForm Fields="{x:Bind ViewModel.Fields, Mode=OneWay}"/>
                <Expander Header="{loc:Translate Key=ui_9461f3524d7e1340}" Visibility="{x:Bind ViewModel.PreviewVisibility, Mode=OneWay}" HorizontalAlignment="Stretch">
                  <TextBox Text="{x:Bind ViewModel.Preview, Mode=OneWay}" IsReadOnly="True" AcceptsReturn="True" FontFamily="Cascadia Code" FontSize="12" MaxHeight="300" ScrollViewer.VerticalScrollBarVisibility="Auto"/>
                </Expander>
              </StackPanel>
            </loc:FormDialogButton.Form>
          </loc:FormDialogButton>
          <loc:FormDialogButton Content="{loc:Translate Key=ui_706a047ce3dc9bc0}" DialogTitle="{loc:Translate Key=ui_45bdafda8e7ebf00}" HorizontalAlignment="Left" PrimaryCommand="{x:Bind ViewModel.ApplyBatchCommand}" PrimaryText="{loc:Translate Key=ui_7c9691192f1b7340}" IsEnabled="{x:Bind ViewModel.IsIdle, Mode=OneWay}" x:Name="BatchDialogButton" ErrorText="{x:Bind ViewModel.LastError, Mode=OneWay}" IsWorking="{x:Bind ViewModel.IsBusy, Mode=OneWay}">
            <loc:FormDialogButton.Form>
              <StackPanel Spacing="14">
                <TextBlock Text="{loc:Translate Key=ui_2a0f6ad7ece53c49}" TextWrapping="Wrap"/>
                <ComboBox Header="{loc:Translate Key=ui_ed31fbb483ee1b0a}" ItemsSource="{x:Bind ViewModel.BatchActions, Mode=OneWay}" SelectedItem="{x:Bind ViewModel.BatchAction, Mode=TwoWay}" DisplayMemberPath="Label" HorizontalAlignment="Stretch"/>
                <TextBlock Text="{x:Bind ViewModel.BatchAction.Description, Mode=OneWay}" TextWrapping="Wrap"/>
              </StackPanel>
            </loc:FormDialogButton.Form>
          </loc:FormDialogButton>
        </StackPanel>
      </Grid>
      <ListView Grid.Row="1" ItemsSource="{x:Bind ViewModel.Items}" IsItemClickEnabled="True" ItemClick="ItemClicked" SelectedItem="{x:Bind ViewModel.SelectedItem, Mode=TwoWay}" SelectionMode="Single" HorizontalContentAlignment="Stretch" Visibility="{x:Bind ViewModel.ListVisibility, Mode=OneWay}">
        <ListView.ItemTemplate>
          <DataTemplate x:DataType="models:EditorItem">
            <StackPanel Spacing="4">
              <TextBlock Text="{x:Bind Name}" TextWrapping="Wrap"/>
              <TextBlock Text="{x:Bind Tags}" FontSize="12" TextWrapping="Wrap" Foreground="{ThemeResource OrbitAccentBrush}"/>
              <TextBlock Text="{x:Bind Detail}" FontSize="12" Style="{StaticResource MutedTextStyle}"/>
            </StackPanel>
          </DataTemplate>
        </ListView.ItemTemplate>
      </ListView>
      <ListView ItemsSource="{x:Bind ViewModel.Actions, Mode=OneWay}" SelectedItem="{x:Bind ViewModel.SelectedAction, Mode=TwoWay}" DisplayMemberPath="Label" Visibility="{x:Bind ViewModel.ActionListVisibility, Mode=OneWay}" Grid.Row="1"/>
      <Grid Grid.Row="2">
        <TextBlock Text="{x:Bind ViewModel.PageLabel, Mode=OneWay}" VerticalAlignment="Center" Opacity="0.7"/>
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Spacing="8">
          <Button Content="{loc:Translate Key=ui_c9b9ae7a61444ab7}" Command="{x:Bind ViewModel.PreviousCommand}" IsEnabled="{x:Bind ViewModel.CanPrevious, Mode=OneWay}"/>
          <Button Content="{loc:Translate Key=ui_8a8542f6964852dc}" Command="{x:Bind ViewModel.NextCommand}" IsEnabled="{x:Bind ViewModel.CanNext, Mode=OneWay}"/>
        </StackPanel>
      </Grid>
    </Grid>
    <ContentControl Grid.Row="2" Visibility="{x:Bind ViewModel.CatalogVisibility, Mode=OneWay}" IsEnabled="{x:Bind ViewModel.IsIdle, Mode=OneWay}" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
      <Grid RowSpacing="16">
        <Grid.RowDefinitions>
          <RowDefinition Height="Auto"/>
          <RowDefinition Height="*"/>
          <RowDefinition Height="Auto"/>
          <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Grid ColumnSpacing="12">
          <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="Auto"/>
          </Grid.ColumnDefinitions>
          <AutoSuggestBox loc:Suggestions.SearchOnTextChanged="True" loc:Suggestions.CanSearch="{x:Bind ViewModel.IsIdle, Mode=OneWay}" PlaceholderText="{loc:Translate Key=ui_3661b28e8d543d69}" Text="{x:Bind ViewModel.Catalog.Query, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="Label" loc:Suggestions.Provider="{x:Bind ViewModel.Catalog.Suggestions}" loc:Suggestions.Context="{x:Bind ViewModel.Category, Mode=OneWay}" loc:Suggestions.SecondaryContext="{x:Bind ViewModel.SelectedAccount, Mode=OneWay}" loc:Suggestions.SubmitCommand="{x:Bind ViewModel.Catalog.SearchCommand}"/>
          <Button Grid.Column="1" Content="{loc:Translate Key=ui_44ce7ae909bbb28b}" Command="{x:Bind ViewModel.Catalog.SearchCommand}"/>
        </Grid>
        <ListView Grid.Row="1" ItemsSource="{x:Bind ViewModel.Catalog.Items}" SelectedItem="{x:Bind ViewModel.Catalog.SelectedItem, Mode=TwoWay}" HorizontalContentAlignment="Stretch">
          <ListView.ItemTemplate>
            <DataTemplate x:DataType="models:InventoryCatalogEntry">
              <StackPanel Spacing="5">
                <TextBlock Text="{x:Bind Name}" FontSize="17" TextWrapping="Wrap"/>
                <TextBlock Text="{x:Bind Tags}" Foreground="{ThemeResource OrbitAccentBrush}" FontSize="12" TextWrapping="Wrap"/>
              </StackPanel>
            </DataTemplate>
          </ListView.ItemTemplate>
        </ListView>
        <loc:FormDialogButton Content="{loc:Translate Key=ui_8de98923333b004a}" DialogTitle="{loc:Translate Key=ui_61a6505b08fa9ca4}" HorizontalAlignment="Left" PrimaryCommand="{x:Bind ViewModel.Catalog.GiveCommand}" PrimaryText="{loc:Translate Key=ui_7a8a11ead50742a2}" Grid.Row="2" ErrorText="{x:Bind ViewModel.LastError, Mode=OneWay}" IsWorking="{x:Bind ViewModel.IsBusy, Mode=OneWay}">
          <loc:FormDialogButton.Form>
            <StackPanel Orientation="Horizontal" Spacing="16">
              <NumberBox Header="{loc:Translate Key=ui_5e29d121dda011c5}" Value="{x:Bind ViewModel.Catalog.Count, Mode=TwoWay}" Minimum="1" Maximum="100" SpinButtonPlacementMode="Compact" Width="160"/>
            </StackPanel>
          </loc:FormDialogButton.Form>
        </loc:FormDialogButton>
        <Grid Grid.Row="3">
          <TextBlock Text="{x:Bind ViewModel.Catalog.Summary, Mode=OneWay}" VerticalAlignment="Center" Style="{StaticResource MutedTextStyle}"/>
          <StackPanel Orientation="Horizontal" Spacing="8" HorizontalAlignment="Right">
            <Button Content="{loc:Translate Key=ui_c9b9ae7a61444ab7}" Command="{x:Bind ViewModel.Catalog.PreviousCommand}" IsEnabled="{x:Bind ViewModel.Catalog.HasPrevious, Mode=OneWay}"/>
            <Button Content="{loc:Translate Key=ui_8a8542f6964852dc}" Command="{x:Bind ViewModel.Catalog.NextCommand}" IsEnabled="{x:Bind ViewModel.Catalog.HasNext, Mode=OneWay}"/>
          </StackPanel>
        </Grid>
      </Grid>
    </ContentControl>
    <Grid Grid.Row="2" Visibility="{x:Bind ViewModel.InlineSettingsVisibility, Mode=OneWay}" RowSpacing="12">
      <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
      </Grid.RowDefinitions>
      <StackPanel Spacing="8">
        <InfoBar IsOpen="{x:Bind ViewModel.HasChangeNotice, Mode=OneWay}" Message="{x:Bind ViewModel.ChangeNotice, Mode=OneWay}" IsClosable="False" Severity="Warning"/>
        <Button Content="{loc:Translate Key=ui_c8550237ba701f64}" Command="{x:Bind ViewModel.SaveCommand}" IsEnabled="{x:Bind ViewModel.CanSave, Mode=OneWay}" Style="{StaticResource OrbitAccentButtonStyle}"/>
      </StackPanel>
      <ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" IsEnabled="{x:Bind ViewModel.IsIdle, Mode=OneWay}">
        <loc:GroupedSettingsForm Fields="{x:Bind ViewModel.Fields, Mode=OneWay}" Scope="account"/>
      </ScrollViewer>
    </Grid>
    <Border Grid.Row="2" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Opacity="0.92" Visibility="{x:Bind ViewModel.LoadingVisibility, Mode=OneWay}">
      <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Spacing="14">
        <ProgressRing IsActive="{x:Bind ViewModel.IsBusy, Mode=OneWay}" Width="40" Height="40"/>
        <TextBlock Text="{loc:Translate Key=ui_ae26e2785ab7ff5f}"/>
      </StackPanel>
    </Border>
  </Grid>
</Page>