/ src / Ryujinx / UI / Views / Input / ControllerInputView.axaml
ControllerInputView.axaml
  1  <UserControl
  2      xmlns="https://github.com/avaloniaui"
  3      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4      xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
  5      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  7      xmlns:controls="clr-namespace:Ryujinx.Ava.UI.Controls"
  8      xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels.Input"
  9      xmlns:helpers="clr-namespace:Ryujinx.Ava.UI.Helpers"
 10      HorizontalAlignment="Stretch"
 11      VerticalAlignment="Stretch"
 12      d:DesignHeight="800"
 13      d:DesignWidth="800"
 14      x:Class="Ryujinx.Ava.UI.Views.Input.ControllerInputView"
 15      x:DataType="viewModels:ControllerInputViewModel"
 16      x:CompileBindings="True"
 17      mc:Ignorable="d"
 18      Focusable="True">
 19      <Design.DataContext>
 20          <viewModels:ControllerInputViewModel />
 21      </Design.DataContext>
 22      <UserControl.Resources>
 23          <helpers:KeyValueConverter x:Key="Key" />
 24      </UserControl.Resources>
 25      <UserControl.Styles>
 26          <Style Selector="ToggleButton">
 27              <Setter Property="Width" Value="90" />
 28              <Setter Property="Height" Value="27" />
 29              <Setter Property="HorizontalAlignment" Value="Stretch" />
 30          </Style>
 31      </UserControl.Styles>
 32      <StackPanel
 33          HorizontalAlignment="Stretch"
 34          VerticalAlignment="Stretch"
 35          Orientation="Vertical">
 36          <!-- Button / JoyStick Settings -->
 37          <Grid
 38              Name="SettingButtons"
 39              MinHeight="450">
 40              <Grid.ColumnDefinitions>
 41                  <ColumnDefinition Width="Auto" />
 42                  <ColumnDefinition Width="*" />
 43                  <ColumnDefinition Width="Auto" />
 44              </Grid.ColumnDefinitions>
 45              <!-- Left Controls -->
 46              <StackPanel
 47                  Orientation="Vertical"
 48                  Margin="0,0,5,0"
 49                  Grid.Column="0">
 50                  <!-- Left Triggers -->
 51                  <Border
 52                      BorderBrush="{DynamicResource ThemeControlBorderColor}"
 53                      BorderThickness="1"
 54                      IsVisible="{Binding IsLeft}"
 55                      MinHeight="90"
 56                      CornerRadius="5">
 57                      <Grid
 58                          Margin="10"
 59                          HorizontalAlignment="Stretch">
 60                          <Grid.ColumnDefinitions>
 61                              <ColumnDefinition />
 62                              <ColumnDefinition />
 63                          </Grid.ColumnDefinitions>
 64                          <Grid.RowDefinitions>
 65                              <RowDefinition />
 66                              <RowDefinition />
 67                          </Grid.RowDefinitions>
 68                          <StackPanel
 69                              Grid.Column="0"
 70                              Grid.Row="0"
 71                              Orientation="Horizontal">
 72                              <TextBlock
 73                                  Width="20"
 74                                  HorizontalAlignment="Center"
 75                                  VerticalAlignment="Center"
 76                                  Text="{locale:Locale ControllerSettingsTriggerZL}"
 77                                  TextAlignment="Center" />
 78                              <ToggleButton Name="ButtonZl">
 79                                  <TextBlock
 80                                      Text="{Binding Config.ButtonZl, Converter={StaticResource Key}}"
 81                                      TextAlignment="Center" />
 82                              </ToggleButton>
 83                          </StackPanel>
 84                          <StackPanel
 85                              Grid.Column="0"
 86                              Grid.Row="1"
 87                              Orientation="Horizontal">
 88                              <TextBlock
 89                                  Width="20"
 90                                  HorizontalAlignment="Center"
 91                                  VerticalAlignment="Center"
 92                                  Text="{locale:Locale ControllerSettingsTriggerL}"
 93                                  TextAlignment="Center" />
 94                              <ToggleButton Name="ButtonL">
 95                                  <TextBlock
 96                                      Text="{Binding Config.ButtonL, Converter={StaticResource Key}}"
 97                                      TextAlignment="Center" />
 98                              </ToggleButton>
 99                          </StackPanel>
100                          <StackPanel
101                              Grid.Column="1"
102                              Grid.Row="1"
103                              Orientation="Horizontal">
104                              <TextBlock
105                                  Width="20"
106                                  HorizontalAlignment="Center"
107                                  VerticalAlignment="Center"
108                                  Text="{locale:Locale ControllerSettingsButtonMinus}"
109                                  TextAlignment="Center" />
110                              <ToggleButton Name="ButtonMinus">
111                                  <TextBlock
112                                      Text="{Binding Config.ButtonMinus, Converter={StaticResource Key}}"
113                                      TextAlignment="Center" />
114                              </ToggleButton>
115                          </StackPanel>
116                      </Grid>
117                  </Border>
118                  <!-- Left Joystick -->
119                  <Border
120                      BorderBrush="{DynamicResource ThemeControlBorderColor}"
121                      BorderThickness="1"
122                      IsVisible="{Binding IsLeft}"
123                      Margin="0,5,0,0"
124                      CornerRadius="5">
125                      <StackPanel
126                          Margin="10"
127                          Orientation="Vertical">
128                          <TextBlock
129                              Margin="0,0,0,10"
130                              HorizontalAlignment="Center"
131                              Text="{locale:Locale ControllerSettingsLStick}" />
132                          <!-- Left Joystick Controller -->
133                          <StackPanel Orientation="Vertical">
134                              <!-- Left Joystick Button -->
135                              <StackPanel
136                                  Orientation="Horizontal">
137                                  <TextBlock
138                                      Margin="0,0,10,0"
139                                      Width="120"
140                                      HorizontalAlignment="Center"
141                                      VerticalAlignment="Center"
142                                      Text="{locale:Locale ControllerSettingsStickButton}"
143                                      TextAlignment="Center" />
144                                  <ToggleButton Name="LeftStickButton">
145                                      <TextBlock
146                                          Text="{Binding Config.LeftStickButton, Converter={StaticResource Key}}"
147                                          TextAlignment="Center" />
148                                  </ToggleButton>
149                              </StackPanel>
150                              <!-- Left Joystick Stick -->
151                              <StackPanel
152                                  Margin="0,4,0,4"
153                                  Orientation="Horizontal">
154                                  <TextBlock
155                                      Margin="0,0,10,0"
156                                      Width="120"
157                                      HorizontalAlignment="Center"
158                                      VerticalAlignment="Center"
159                                      Text="{locale:Locale ControllerSettingsStickStick}"
160                                      TextAlignment="Center" />
161                                  <ToggleButton Name="LeftJoystick" Tag="stick">
162                                      <TextBlock
163                                          Text="{Binding Config.LeftJoystick, Converter={StaticResource Key}}"
164                                          TextAlignment="Center" />
165                                  </ToggleButton>
166                              </StackPanel>
167                              <Separator
168                                  Margin="0,8,0,8"
169                                  Height="1" />
170                              <CheckBox IsChecked="{Binding Config.LeftInvertStickX}">
171                                  <TextBlock Text="{locale:Locale ControllerSettingsStickInvertXAxis}" />
172                              </CheckBox>
173                              <CheckBox IsChecked="{Binding Config.LeftInvertStickY}">
174                                  <TextBlock Text="{locale:Locale ControllerSettingsStickInvertYAxis}" />
175                              </CheckBox>
176                              <CheckBox IsChecked="{Binding Config.LeftRotate90}">
177                                  <TextBlock Text="{locale:Locale ControllerSettingsRotate90}" />
178                              </CheckBox>
179                              <Separator
180                                  Margin="0,8,0,8"
181                                  Height="1" />
182                              <StackPanel Orientation="Vertical">
183                                  <TextBlock
184                                      HorizontalAlignment="Center"
185                                      Text="{locale:Locale ControllerSettingsStickDeadzone}" />
186                                  <StackPanel
187                                      HorizontalAlignment="Center"
188                                      VerticalAlignment="Center"
189                                      Orientation="Horizontal">
190                                      <controls:SliderScroll
191                                          Width="130"
192                                          Maximum="1"
193                                          TickFrequency="0.01"
194                                          IsSnapToTickEnabled="True"
195                                          SmallChange="0.01"
196                                          Minimum="0"
197                                          Value="{Binding Config.DeadzoneLeft, Mode=TwoWay}" />
198                                      <TextBlock
199                                          VerticalAlignment="Center"
200                                          Width="25"
201                                          Text="{Binding Config.DeadzoneLeft, StringFormat=\{0:0.00\}}" />
202                                  </StackPanel>
203                                  <TextBlock
204                                      HorizontalAlignment="Center"
205                                      Text="{locale:Locale ControllerSettingsStickRange}" />
206                                  <StackPanel
207                                      HorizontalAlignment="Center"
208                                      VerticalAlignment="Center"
209                                      Orientation="Horizontal">
210                                      <controls:SliderScroll
211                                          Width="130"
212                                          Maximum="2"
213                                          TickFrequency="0.01"
214                                          IsSnapToTickEnabled="True"
215                                          SmallChange="0.01"
216                                          Minimum="0"
217                                          Value="{Binding Config.RangeLeft, Mode=TwoWay}" />
218                                      <TextBlock
219                                          VerticalAlignment="Center"
220                                          Width="25"
221                                          Text="{Binding Config.RangeLeft, StringFormat=\{0:0.00\}}" />
222                                  </StackPanel>
223                              </StackPanel>
224                          </StackPanel>
225                      </StackPanel>
226                  </Border>
227                  <!-- Left DPad -->
228                  <Border
229                      BorderBrush="{DynamicResource ThemeControlBorderColor}"
230                      BorderThickness="1"
231                      VerticalAlignment="Top"
232                      IsVisible="{Binding IsLeft}"
233                      Margin="0,5,0,0"
234                      CornerRadius="5">
235                      <StackPanel
236                          Margin="10"
237                          Orientation="Vertical">
238                          <TextBlock
239                              Margin="0,0,0,10"
240                              HorizontalAlignment="Center"
241                              Text="{locale:Locale ControllerSettingsDPad}" />
242                          <StackPanel Orientation="Vertical">
243                              <!-- Left DPad Up -->
244                              <StackPanel
245                                  Margin="0,0,0,4"
246                                  Orientation="Horizontal">
247                                  <TextBlock
248                                      Margin="0,0,10,0"
249                                      Width="120"
250                                      HorizontalAlignment="Center"
251                                      VerticalAlignment="Center"
252                                      Text="{locale:Locale ControllerSettingsDPadUp}"
253                                      TextAlignment="Center" />
254                                  <ToggleButton Name="DpadUp">
255                                      <TextBlock
256                                          Text="{Binding Config.DpadUp, Converter={StaticResource Key}}"
257                                          TextAlignment="Center" />
258                                  </ToggleButton>
259                              </StackPanel>
260                              <!-- Left DPad Down -->
261                              <StackPanel
262                                  Margin="0,0,0,4"
263                                  Orientation="Horizontal">
264                                  <TextBlock
265                                      Margin="0,0,10,0"
266                                      Width="120"
267                                      HorizontalAlignment="Center"
268                                      VerticalAlignment="Center"
269                                      Text="{locale:Locale ControllerSettingsDPadDown}"
270                                      TextAlignment="Center" />
271                                  <ToggleButton Name="DpadDown">
272                                      <TextBlock
273                                          Text="{Binding Config.DpadDown, Converter={StaticResource Key}}"
274                                          TextAlignment="Center" />
275                                  </ToggleButton>
276                              </StackPanel>
277                              <!-- Left DPad Left -->
278                              <StackPanel
279                                  Margin="0,0,0,4"
280                                  Orientation="Horizontal">
281                                  <TextBlock
282                                      Margin="0,0,10,0"
283                                      Width="120"
284                                      HorizontalAlignment="Center"
285                                      VerticalAlignment="Center"
286                                      Text="{locale:Locale ControllerSettingsDPadLeft}"
287                                      TextAlignment="Center" />
288                                  <ToggleButton Name="DpadLeft">
289                                      <TextBlock
290                                          Text="{Binding Config.DpadLeft, Converter={StaticResource Key}}"
291                                          TextAlignment="Center" />
292                                  </ToggleButton>
293                              </StackPanel>
294                              <!-- Left DPad Right -->
295                              <StackPanel
296                                  Margin="0,0,0,4"
297                                  Orientation="Horizontal">
298                                  <TextBlock
299                                      Margin="0,0,10,0"
300                                      Width="120"
301                                      HorizontalAlignment="Center"
302                                      VerticalAlignment="Center"
303                                      Text="{locale:Locale ControllerSettingsDPadRight}"
304                                      TextAlignment="Center" />
305                                  <ToggleButton Name="DpadRight">
306                                      <TextBlock
307                                          Text="{Binding Config.DpadRight, Converter={StaticResource Key}}"
308                                          TextAlignment="Center" />
309                                  </ToggleButton>
310                              </StackPanel>
311                          </StackPanel>
312                      </StackPanel>
313                  </Border>
314              </StackPanel>
315              <!-- Triggers & Side Buttons -->
316              <StackPanel
317                  Grid.Column="1"
318                  HorizontalAlignment="Stretch"
319                  VerticalAlignment="Stretch">
320                  <!-- Controller Picture -->
321                  <Image
322                      Margin="0,10"
323                      MaxHeight="300"
324                      HorizontalAlignment="Stretch"
325                      VerticalAlignment="Stretch"
326                      Source="{Binding Image}" />
327                  <Border
328                      BorderBrush="{DynamicResource ThemeControlBorderColor}"
329                      BorderThickness="1"
330                      CornerRadius="5"
331                      MinHeight="90">
332                      <StackPanel
333                          Margin="8"
334                          Orientation="Vertical">
335                          <TextBlock
336                              HorizontalAlignment="Center"
337                              Text="{locale:Locale ControllerSettingsTriggerThreshold}" />
338                          <StackPanel
339                              HorizontalAlignment="Center"
340                              Orientation="Horizontal">
341                              <controls:SliderScroll
342                                  Width="130"
343                                  Maximum="1"
344                                  TickFrequency="0.01"
345                                  IsSnapToTickEnabled="True"
346                                  SmallChange="0.01"
347                                  Minimum="0"
348                                  Value="{Binding Config.TriggerThreshold, Mode=TwoWay}" />
349                              <TextBlock
350                                Width="25"
351                                Text="{Binding Config.TriggerThreshold, StringFormat=\{0:0.00\}}" />
352                          </StackPanel>
353                          <StackPanel
354                              Orientation="Vertical"
355                              IsVisible="{Binding HasSides}">
356                              <StackPanel
357                                  Margin="0,4,0,0"
358                                  HorizontalAlignment="Center"
359                                  VerticalAlignment="Center"
360                                  IsVisible="{Binding IsLeft}"
361                                  Orientation="Horizontal">
362                                  <TextBlock
363                                      Width="20"
364                                      HorizontalAlignment="Center"
365                                      VerticalAlignment="Center"
366                                      Text="{locale:Locale ControllerSettingsLeftSR}"
367                                      TextAlignment="Center" />
368                                  <ToggleButton Name="LeftButtonSr">
369                                      <TextBlock
370                                          Text="{Binding Config.LeftButtonSr, Converter={StaticResource Key}}"
371                                          TextAlignment="Center" />
372                                  </ToggleButton>
373                              </StackPanel>
374                              <StackPanel
375                                  Margin="0,4,0,0"
376                                  HorizontalAlignment="Center"
377                                  VerticalAlignment="Center"
378                                  IsVisible="{Binding IsLeft}"
379                                  Orientation="Horizontal">
380                                  <TextBlock
381                                      Width="20"
382                                      HorizontalAlignment="Center"
383                                      VerticalAlignment="Center"
384                                      Text="{locale:Locale ControllerSettingsLeftSL}"
385                                      TextAlignment="Center" />
386                                  <ToggleButton Name="LeftButtonSl">
387                                      <TextBlock
388                                          Text="{Binding Config.LeftButtonSl, Converter={StaticResource Key}}"
389                                          TextAlignment="Center" />
390                                  </ToggleButton>
391                              </StackPanel>
392                              <StackPanel
393                                  Margin="0,4,0,0"
394                                  HorizontalAlignment="Center"
395                                  VerticalAlignment="Center"
396                                  IsVisible="{Binding IsRight}"
397                                  Orientation="Horizontal">
398                                  <TextBlock
399                                      Width="20"
400                                      HorizontalAlignment="Center"
401                                      VerticalAlignment="Center"
402                                      Text="{locale:Locale ControllerSettingsRightSR}"
403                                      TextAlignment="Center" />
404                                  <ToggleButton Name="RightButtonSr">
405                                      <TextBlock
406                                          Text="{Binding Config.RightButtonSr, Converter={StaticResource Key}}"
407                                          TextAlignment="Center" />
408                                  </ToggleButton>
409                              </StackPanel>
410                              <StackPanel
411                                  Margin="0,4,0,0"
412                                  HorizontalAlignment="Center"
413                                  VerticalAlignment="Center"
414                                  IsVisible="{Binding IsRight}"
415                                  Orientation="Horizontal">
416                                  <TextBlock
417                                      Width="20"
418                                      HorizontalAlignment="Center"
419                                      VerticalAlignment="Center"
420                                      Text="{locale:Locale ControllerSettingsRightSL}"
421                                      TextAlignment="Center" />
422                                  <ToggleButton Name="RightButtonSl">
423                                      <TextBlock
424                                          Text="{Binding Config.RightButtonSl, Converter={StaticResource Key}}"
425                                          TextAlignment="Center" />
426                                  </ToggleButton>
427                              </StackPanel>
428                          </StackPanel>
429                      </StackPanel>
430                  </Border>
431                  <!-- Motion + Rumble -->
432                  <StackPanel
433                      Margin="0,10,0,0"
434                      Spacing="5"
435                      Orientation="Vertical"
436                      VerticalAlignment="Bottom">
437                      <Border
438                          BorderBrush="{DynamicResource ThemeControlBorderColor}"
439                          BorderThickness="1"
440                          CornerRadius="5"
441                          VerticalAlignment="Bottom"
442                          HorizontalAlignment="Stretch">
443                          <Grid>
444                              <Grid.ColumnDefinitions>
445                                  <ColumnDefinition Width="*" />
446                                  <ColumnDefinition Width="Auto" />
447                              </Grid.ColumnDefinitions>
448                              <CheckBox
449                                  Margin="10"
450                                  MinWidth="0"
451                                  Grid.Column="0"
452                                  IsChecked="{Binding Config.EnableMotion, Mode=TwoWay}">
453                                  <TextBlock Text="{locale:Locale ControllerSettingsMotion}" />
454                              </CheckBox>
455                              <Button
456                                  Margin="10"
457                                  Grid.Column="1"
458                                  Command="{Binding ShowMotionConfig}">
459                                  <TextBlock Text="{locale:Locale ControllerSettingsConfigureGeneral}" />
460                              </Button>
461                          </Grid>
462                      </Border>
463                      <Border
464                          BorderBrush="{DynamicResource ThemeControlBorderColor}"
465                          BorderThickness="1"
466                          CornerRadius="5"
467                          HorizontalAlignment="Stretch"
468                          Margin="0,-1,0,0">
469                          <Grid>
470                              <Grid.ColumnDefinitions>
471                                  <ColumnDefinition Width="*" />
472                                  <ColumnDefinition Width="Auto" />
473                              </Grid.ColumnDefinitions>
474                              <CheckBox
475                                  Margin="10"
476                                  MinWidth="0"
477                                  Grid.Column="0"
478                                  IsChecked="{Binding Config.EnableRumble, Mode=TwoWay}">
479                                  <TextBlock Text="{locale:Locale ControllerSettingsRumble}" />
480                              </CheckBox>
481                              <Button
482                                  Margin="10"
483                                  Grid.Column="1"
484                                  Command="{Binding ShowRumbleConfig}">
485                                  <TextBlock Text="{locale:Locale ControllerSettingsConfigureGeneral}" />
486                              </Button>
487                          </Grid>
488                      </Border>
489                  </StackPanel>
490              </StackPanel>
491              <!-- Right Controls -->
492              <StackPanel
493                  Orientation="Vertical"
494                  Margin="5,0,0,0"
495                  Grid.Column="2">
496                  <!-- Right Triggers -->
497                  <Border
498                      BorderBrush="{DynamicResource ThemeControlBorderColor}"
499                      BorderThickness="1"
500                      IsVisible="{Binding IsRight}"
501                      MinHeight="90"
502                      CornerRadius="5">
503                      <Grid
504                          Margin="10"
505                          HorizontalAlignment="Stretch">
506                          <Grid.ColumnDefinitions>
507                              <ColumnDefinition />
508                              <ColumnDefinition />
509                          </Grid.ColumnDefinitions>
510                          <Grid.RowDefinitions>
511                              <RowDefinition />
512                              <RowDefinition />
513                          </Grid.RowDefinitions>
514                          <StackPanel
515                              Grid.Column="1"
516                              Grid.Row="0"
517                              Orientation="Horizontal">
518                              <TextBlock
519                                  Width="20"
520                                  HorizontalAlignment="Center"
521                                  VerticalAlignment="Center"
522                                  Text="{locale:Locale ControllerSettingsTriggerZR}"
523                                  TextAlignment="Center" />
524                              <ToggleButton Name="ButtonZr">
525                                  <TextBlock
526                                      Text="{Binding Config.ButtonZr, Converter={StaticResource Key}}"
527                                      TextAlignment="Center" />
528                              </ToggleButton>
529                          </StackPanel>
530                          <StackPanel
531                              Grid.Column="1"
532                              Grid.Row="1"
533                              HorizontalAlignment="Center"
534                              VerticalAlignment="Center"
535                              Orientation="Horizontal">
536                              <TextBlock
537                                  Width="20"
538                                  HorizontalAlignment="Center"
539                                  VerticalAlignment="Center"
540                                  Text="{locale:Locale ControllerSettingsTriggerR}"
541                                  TextAlignment="Center" />
542                              <ToggleButton Name="ButtonR">
543                                  <TextBlock
544                                      Text="{Binding Config.ButtonR, Converter={StaticResource Key}}"
545                                      TextAlignment="Center" />
546                              </ToggleButton>
547                          </StackPanel>
548                          <StackPanel
549                              Grid.Column="0"
550                              Grid.Row="1"
551                              HorizontalAlignment="Right"
552                              VerticalAlignment="Center"
553                              Orientation="Horizontal">
554                              <TextBlock
555                                  Width="20"
556                                  HorizontalAlignment="Center"
557                                  VerticalAlignment="Center"
558                                  Text="{locale:Locale ControllerSettingsButtonPlus}"
559                                  TextAlignment="Center" />
560                              <ToggleButton Name="ButtonPlus">
561                                  <TextBlock
562                                      Text="{Binding Config.ButtonPlus, Converter={StaticResource Key}}"
563                                      TextAlignment="Center" />
564                              </ToggleButton>
565                          </StackPanel>
566                      </Grid>
567                  </Border>
568                  <!-- Right Buttons -->
569                  <Border
570                      BorderBrush="{DynamicResource ThemeControlBorderColor}"
571                      BorderThickness="1"
572                      IsVisible="{Binding IsRight}"
573                      Margin="0,5,0,0"
574                      CornerRadius="5">
575                      <StackPanel
576                          Margin="10"
577                          Orientation="Vertical">
578                          <TextBlock
579                              Margin="0,0,0,10"
580                              HorizontalAlignment="Center"
581                              Text="{locale:Locale ControllerSettingsButtons}" />
582                          <StackPanel
583                              Orientation="Vertical">
584                              <!-- Right Buttons A -->
585                              <StackPanel
586                                  Margin="0,0,0,4"
587                                  Orientation="Horizontal">
588                                  <TextBlock
589                                      Width="120"
590                                      Margin="0,0,10,0"
591                                      HorizontalAlignment="Center"
592                                      VerticalAlignment="Center"
593                                      Text="{locale:Locale ControllerSettingsButtonA}"
594                                      TextAlignment="Center" />
595                                  <ToggleButton Name="ButtonA">
596                                      <TextBlock
597                                          Text="{Binding Config.ButtonA, Converter={StaticResource Key}}"
598                                          TextAlignment="Center" />
599                                  </ToggleButton>
600                              </StackPanel>
601                              <!-- Right Buttons B -->
602                              <StackPanel
603                                  Margin="0,0,0,4"
604                                  Orientation="Horizontal">
605                                  <TextBlock
606                                      Width="120"
607                                      Margin="0,0,10,0"
608                                      HorizontalAlignment="Center"
609                                      VerticalAlignment="Center"
610                                      Text="{locale:Locale ControllerSettingsButtonB}"
611                                      TextAlignment="Center" />
612                                  <ToggleButton Name="ButtonB">
613                                      <TextBlock
614                                          Text="{Binding Config.ButtonB, Converter={StaticResource Key}}"
615                                          TextAlignment="Center" />
616                                  </ToggleButton>
617                              </StackPanel>
618                              <!-- Right Buttons X -->
619                              <StackPanel
620                                  Margin="0,0,0,4"
621                                  Orientation="Horizontal">
622                                  <TextBlock
623                                      Width="120"
624                                      Margin="0,0,10,0"
625                                      HorizontalAlignment="Center"
626                                      VerticalAlignment="Center"
627                                      Text="{locale:Locale ControllerSettingsButtonX}"
628                                      TextAlignment="Center" />
629                                  <ToggleButton Name="ButtonX">
630                                      <TextBlock
631                                          Text="{Binding Config.ButtonX, Converter={StaticResource Key}}"
632                                          TextAlignment="Center" />
633                                  </ToggleButton>
634                              </StackPanel>
635                              <!-- Right Buttons Y -->
636                              <StackPanel
637                                  Margin="0,0,0,4"
638                                  Orientation="Horizontal">
639                                  <TextBlock
640                                      Width="120"
641                                      Margin="0,0,10,0"
642                                      HorizontalAlignment="Center"
643                                      VerticalAlignment="Center"
644                                      Text="{locale:Locale ControllerSettingsButtonY}"
645                                      TextAlignment="Center" />
646                                  <ToggleButton Name="ButtonY">
647                                      <TextBlock
648                                          Text="{Binding Config.ButtonY, Converter={StaticResource Key}}"
649                                          TextAlignment="Center" />
650                                  </ToggleButton>
651                              </StackPanel>
652                          </StackPanel>
653                      </StackPanel>
654                  </Border>
655                  <!-- Right DPad -->
656                  <Border
657                      Padding="10"
658                      BorderBrush="{DynamicResource ThemeControlBorderColor}"
659                      BorderThickness="1"
660                      CornerRadius="5"
661                      IsVisible="{Binding IsRight}"
662                      Margin="0,5,0,0">
663                      <StackPanel Orientation="Vertical">
664                          <TextBlock
665                              Margin="0,0,0,10"
666                              HorizontalAlignment="Center"
667                              Text="{locale:Locale ControllerSettingsRStick}" />
668                          <!-- Right Joystick Controller -->
669                          <StackPanel Orientation="Vertical">
670                              <!-- Right Joystick Button -->
671                              <StackPanel
672                                  Orientation="Horizontal">
673                                  <TextBlock
674                                      Margin="0,0,10,0"
675                                      Width="120"
676                                      HorizontalAlignment="Center"
677                                      VerticalAlignment="Center"
678                                      Text="{locale:Locale ControllerSettingsStickButton}"
679                                      TextAlignment="Center" />
680                                  <ToggleButton Name="RightStickButton">
681                                      <TextBlock
682                                          Text="{Binding Config.RightStickButton, Converter={StaticResource Key}}"
683                                          TextAlignment="Center" />
684                                  </ToggleButton>
685                              </StackPanel>
686                              <!-- Right Joystick Stick -->
687                              <StackPanel
688                                  Margin="0,4,0,4"
689                                  Background="{DynamicResource ThemeDarkColor}"
690                                  Orientation="Horizontal">
691                                  <TextBlock
692                                      Margin="0,0,10,0"
693                                      Width="120"
694                                      HorizontalAlignment="Center"
695                                      VerticalAlignment="Center"
696                                      Text="{locale:Locale ControllerSettingsStickStick}"
697                                      TextAlignment="Center" />
698                                  <ToggleButton Name="RightJoystick" Tag="stick">
699                                      <TextBlock
700                                          Text="{Binding Config.RightJoystick, Converter={StaticResource Key}}"
701                                          TextAlignment="Center" />
702                                  </ToggleButton>
703                              </StackPanel>
704                              <Separator Margin="0,8,0,8" Height="1" />
705                              <CheckBox IsChecked="{Binding Config.RightInvertStickX}">
706                                  <TextBlock Text="{locale:Locale ControllerSettingsStickInvertXAxis}" />
707                              </CheckBox>
708                              <CheckBox IsChecked="{Binding Config.RightInvertStickY}">
709                                  <TextBlock Text="{locale:Locale ControllerSettingsStickInvertYAxis}" />
710                              </CheckBox>
711                              <CheckBox IsChecked="{Binding Config.RightRotate90}">
712                                  <TextBlock Text="{locale:Locale ControllerSettingsRotate90}" />
713                              </CheckBox>
714                              <Separator Margin="0,8,0,8" Height="1" />
715                              <StackPanel Orientation="Vertical">
716                                  <TextBlock
717                                      HorizontalAlignment="Center"
718                                      Text="{locale:Locale ControllerSettingsStickDeadzone}" />
719                                  <StackPanel
720                                      HorizontalAlignment="Center"
721                                      VerticalAlignment="Center"
722                                      Orientation="Horizontal">
723                                      <controls:SliderScroll
724                                          Width="130"
725                                          Maximum="1"
726                                          TickFrequency="0.01"
727                                          IsSnapToTickEnabled="True"
728                                          SmallChange="0.01"
729                                          Padding="0"
730                                          VerticalAlignment="Center"
731                                          Minimum="0"
732                                          Value="{Binding Config.DeadzoneRight, Mode=TwoWay}" />
733                                      <TextBlock
734                                          VerticalAlignment="Center"
735                                          Width="25"
736                                          Text="{Binding Config.DeadzoneRight, StringFormat=\{0:0.00\}}" />
737                                  </StackPanel>
738                                  <TextBlock
739                                      HorizontalAlignment="Center"
740                                      Text="{locale:Locale ControllerSettingsStickRange}" />
741                                  <StackPanel
742                                      HorizontalAlignment="Center"
743                                      VerticalAlignment="Center"
744                                      Orientation="Horizontal">
745                                      <controls:SliderScroll
746                                          Width="130"
747                                          Maximum="2"
748                                          TickFrequency="0.01"
749                                          IsSnapToTickEnabled="True"
750                                          SmallChange="0.01"
751                                          Minimum="0"
752                                          Value="{Binding Config.RangeRight, Mode=TwoWay}" />
753                                      <TextBlock
754                                          VerticalAlignment="Center"
755                                          Width="25"
756                                          Text="{Binding Config.RangeRight, StringFormat=\{0:0.00\}}" />
757                                  </StackPanel>
758                              </StackPanel>
759                          </StackPanel>
760                      </StackPanel>
761                  </Border>
762              </StackPanel>
763          </Grid>
764      </StackPanel>
765  </UserControl>