Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reorganize the Sliders and Progress examples with some fixes... #3181

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,11 @@ namespace Caliburn.Metro.Demo.ViewModels
[Export(typeof(IShell))]
public class ShellViewModel : Screen, IShell
{
private readonly IObservableCollection<FlyoutBaseViewModel> flyouts =
new BindableCollection<FlyoutBaseViewModel>();
public IObservableCollection<FlyoutBaseViewModel> FlyoutViewModels { get; }

public IObservableCollection<FlyoutBaseViewModel> FlyoutViewModels
public ShellViewModel()
{
get
{
return this.flyouts;
}
FlyoutViewModels = new BindableCollection<FlyoutBaseViewModel>();
}

public void Close()
Expand All @@ -25,21 +21,21 @@ public void Close()

public void ToggleFlyout(int index)
{
var flyout = this.flyouts[index];
var flyout = this.FlyoutViewModels[index];
flyout.IsOpen = !flyout.IsOpen;
}

protected override void OnInitialize()
{
base.OnInitialize();
this.DisplayName = "Caliburn Metro Demo";
this.flyouts.Add(new Flyout1ViewModel());
this.flyouts.Add(new Flyout2ViewModel());
this.flyouts.Add(new Flyout3ViewModel());
this.flyouts.Add(new FlyoutSettingsViewModel());
this.flyouts.Add(new FlyoutLeftViewModel());
this.flyouts.Add(new FlyoutTopViewModel());
this.flyouts.Add(new FlyoutBottomViewModel());
this.FlyoutViewModels.Add(new Flyout1ViewModel());
this.FlyoutViewModels.Add(new Flyout2ViewModel());
this.FlyoutViewModels.Add(new Flyout3ViewModel());
this.FlyoutViewModels.Add(new FlyoutSettingsViewModel());
this.FlyoutViewModels.Add(new FlyoutLeftViewModel());
this.FlyoutViewModels.Add(new FlyoutTopViewModel());
this.FlyoutViewModels.Add(new FlyoutBottomViewModel());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@

<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/FlatSlider.xaml" />
</ResourceDictionary.MergedDictionaries>
<!-- for testing -->
<SolidColorBrush x:Key="ListViewBackground" Color="Transparent" />
</ResourceDictionary>
Expand All @@ -21,7 +18,7 @@
<StackPanel Margin="10" Orientation="Vertical">

<Slider Margin="5"
Style="{StaticResource FlatSlider}"
Style="{DynamicResource MahApps.Metro.Styles.FlatSlider}"
Value="50" />

<ListView x:Name="Artists"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,244 @@
<UserControl x:Class="MetroDemo.ExampleViews.ProgressBars"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:MetroDemo="clr-namespace:MetroDemo"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
d:DataContext="{d:DesignInstance MetroDemo:MainWindowViewModel}"
d:DesignHeight="600"
d:DesignWidth="800"
mc:Ignorable="d">

<UserControl.Resources>
<ResourceDictionary>
<Style BasedOn="{StaticResource MahApps.Metro.Styles.MetroHeader}" TargetType="{x:Type Controls:MetroHeader}">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Vertical" UseLayoutRounding="True">
<TextBlock Margin="0 4 0 4" Text="{Binding}" />
<Separator />
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>

<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
</ResourceDictionary>
</UserControl.Resources>

<Grid>
<ScrollViewer>
<StackPanel Margin="10" Orientation="Vertical">

<Controls:MetroHeader Margin="0 0 0 10" Header="ProgressBar">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0"
Margin="10 0"
Orientation="Vertical">
<Slider x:Name="ProgressValueSlider01"
Width="250"
Margin="4"
Controls:SliderHelper.ChangeValueBy="LargeChange"
Controls:SliderHelper.EnableMouseWheel="MouseHover"
AutoToolTipPlacement="TopLeft"
LargeChange="10"
Maximum="100"
Minimum="0"
Orientation="Horizontal"
SmallChange="1"
Style="{DynamicResource MahApps.Metro.Styles.Slider.Win10}"
Value="25" />
<ProgressBar Width="250"
Margin="4"
Maximum="100"
Minimum="0"
Value="{Binding ElementName=ProgressValueSlider01, Path=Value}" />
<ProgressBar Width="250"
Height="15"
Margin="4"
Maximum="100"
Minimum="0"
Value="{Binding ElementName=ProgressValueSlider01, Path=Value}" />

<CheckBox x:Name="IsVisibleCheckBox01"
Width="250"
Margin="4"
Content="IsVisible"
IsChecked="True" />
<CheckBox x:Name="IsIndeterminateCheckBox01"
Width="250"
Margin="4"
Content="IsIndeterminate"
IsChecked="True" />
<ProgressBar Width="250"
Margin="4"
IsIndeterminate="{Binding ElementName=IsIndeterminateCheckBox01, Path=IsChecked}"
Maximum="100"
Minimum="0"
Visibility="{Binding ElementName=IsVisibleCheckBox01, Path=IsChecked, Converter={StaticResource BooleanToVisibilityConverter}}"
Value="{Binding ElementName=ProgressValueSlider01, Path=Value}" />
</StackPanel>
<StackPanel Grid.Column="1"
Margin="10 0"
Orientation="Horizontal">
<ProgressBar Height="250"
Margin="4"
Maximum="100"
Minimum="0"
Orientation="Vertical"
Value="{Binding ElementName=ProgressValueSlider01, Path=Value}" />
<ProgressBar Width="15"
Height="250"
Margin="4"
Maximum="100"
Minimum="0"
Orientation="Vertical"
Value="{Binding ElementName=ProgressValueSlider01, Path=Value}" />
<ProgressBar Height="250"
Margin="4"
IsIndeterminate="{Binding ElementName=IsIndeterminateCheckBox01, Path=IsChecked}"
Maximum="100"
Minimum="0"
Orientation="Vertical"
Visibility="{Binding ElementName=IsVisibleCheckBox01, Path=IsChecked, Converter={StaticResource BooleanToVisibilityConverter}}"
Value="{Binding ElementName=ProgressValueSlider01, Path=Value}" />
</StackPanel>
</Grid>
</Controls:MetroHeader>

<Controls:MetroHeader Margin="0 0 0 10" Header="MetroProgressBar">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0"
Margin="10 0"
Orientation="Vertical">
<Slider x:Name="ProgressValueSlider02"
Width="250"
Margin="4"
Controls:SliderHelper.ChangeValueBy="LargeChange"
Controls:SliderHelper.EnableMouseWheel="MouseHover"
AutoToolTipPlacement="TopLeft"
LargeChange="10"
Maximum="100"
Minimum="0"
Orientation="Horizontal"
SmallChange="1"
Style="{DynamicResource MahApps.Metro.Styles.Slider.Win10}"
Value="25" />
<Controls:MetroProgressBar Width="250"
Margin="4"
Maximum="100"
Minimum="0"
Value="{Binding ElementName=ProgressValueSlider02, Path=Value}" />
<Controls:MetroProgressBar Width="250"
Height="15"
Margin="4"
Maximum="100"
Minimum="0"
Value="{Binding ElementName=ProgressValueSlider02, Path=Value}" />

<CheckBox x:Name="IsVisibleCheckBox02"
Width="250"
Margin="4"
Content="IsVisible"
IsChecked="True" />
<CheckBox x:Name="IsIndeterminateCheckBox02"
Width="250"
Margin="4"
Content="IsIndeterminate"
IsChecked="True" />
<Controls:MetroProgressBar Width="250"
Margin="4"
IsIndeterminate="{Binding ElementName=IsIndeterminateCheckBox02, Path=IsChecked}"
Maximum="100"
Minimum="0"
Visibility="{Binding ElementName=IsVisibleCheckBox02, Path=IsChecked, Converter={StaticResource BooleanToVisibilityConverter}}"
Value="{Binding ElementName=ProgressValueSlider02, Path=Value}" />
</StackPanel>
<StackPanel Grid.Column="1"
Margin="10 0"
Orientation="Horizontal">
<Controls:MetroProgressBar Height="250"
Margin="4"
Maximum="100"
Minimum="0"
Orientation="Vertical"
Value="{Binding ElementName=ProgressValueSlider02, Path=Value}" />
<Controls:MetroProgressBar Width="15"
Height="250"
Margin="4"
Maximum="100"
Minimum="0"
Orientation="Vertical"
Value="{Binding ElementName=ProgressValueSlider02, Path=Value}" />
<Controls:MetroProgressBar Height="250"
Margin="4"
IsIndeterminate="{Binding ElementName=IsIndeterminateCheckBox02, Path=IsChecked}"
Maximum="100"
Minimum="0"
Orientation="Vertical"
Visibility="{Binding ElementName=IsVisibleCheckBox02, Path=IsChecked, Converter={StaticResource BooleanToVisibilityConverter}}"
Value="{Binding ElementName=ProgressValueSlider02, Path=Value}" />
</StackPanel>
</Grid>
</Controls:MetroHeader>

<Controls:MetroHeader Margin="0 0 0 10" Header="MetroProgressBar">
<StackPanel MinHeight="150"
Margin="10 0"
Orientation="Vertical">
<StackPanel Margin="4"
HorizontalAlignment="Left"
Orientation="Horizontal">
<CheckBox x:Name="IsActiveCheckBox"
MinWidth="100"
Margin="4"
Content="IsActive"
IsChecked="True" />
<CheckBox x:Name="IsLargeCheckBox"
MinWidth="100"
Margin="4"
Content="IsLarge"
IsChecked="True" />
<CheckBox x:Name="IsVisibleCheckBox03"
MinWidth="100"
Margin="4"
Content="IsVisible"
IsChecked="True" />
</StackPanel>
<StackPanel Margin="4"
HorizontalAlignment="Left"
Orientation="Horizontal">
<Controls:ProgressRing IsActive="{Binding ElementName=IsActiveCheckBox, Path=IsChecked}"
IsLarge="{Binding ElementName=IsLargeCheckBox, Path=IsChecked}"
Visibility="{Binding ElementName=IsVisibleCheckBox03, Path=IsChecked, Converter={StaticResource BooleanToVisibilityConverter}}" />
<Controls:ProgressRing Width="40"
Height="40"
IsActive="{Binding ElementName=IsActiveCheckBox, Path=IsChecked}"
IsLarge="{Binding ElementName=IsLargeCheckBox, Path=IsChecked}"
ToolTip="Magic happens!"
Visibility="{Binding ElementName=IsVisibleCheckBox03, Path=IsChecked, Converter={StaticResource BooleanToVisibilityConverter}}" />
<Controls:ProgressRing Width="20"
Height="20"
IsActive="{Binding ElementName=IsActiveCheckBox, Path=IsChecked}"
IsLarge="{Binding ElementName=IsLargeCheckBox, Path=IsChecked}"
Visibility="{Binding ElementName=IsVisibleCheckBox03, Path=IsChecked, Converter={StaticResource BooleanToVisibilityConverter}}" />
</StackPanel>
</StackPanel>
</Controls:MetroHeader>

</StackPanel>
</ScrollViewer>
</Grid>

</UserControl>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
using System.Windows.Controls;

namespace MetroDemo.ExampleViews
{
/// <summary>
/// Interaction logic for ProgressBars.xaml
/// </summary>
public partial class ProgressBars : UserControl
{
public ProgressBars()
{
InitializeComponent();
}
}
}
Loading