Skip to content

Commit

Permalink
Merge pull request #56 from zxbmmmmmmmmm/weather30d
Browse files Browse the repository at this point in the history
30天天气预报
Close #32
  • Loading branch information
zxbmmmmmmmmm authored Jul 21, 2024
2 parents b34b062 + 46a7907 commit b5857f4
Show file tree
Hide file tree
Showing 10 changed files with 1,166 additions and 315 deletions.
3 changes: 3 additions & 0 deletions FluentWeather.Uwp/App.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
<ResourceDictionary.MergedDictionaries>
<themes:Generic />
<themes:Theme />
<ResourceDictionary Source="/Styles/SegmentedItem.xaml"/>
<ResourceDictionary Source="/Styles/ListView.xaml"/>
<ResourceDictionary Source="/Styles/ContentDialog.xaml"/>
</ResourceDictionary.MergedDictionaries>
<valueConverters2:BoolNegationConverter x:Key="BoolNegationConverter" />
<valueConverters2:ValueConverterGroup x:Name="NullToVisibilityConverter">
Expand Down
11 changes: 9 additions & 2 deletions FluentWeather.Uwp/Behaviors/ListViewOpenFlyoutBehavior.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,17 @@ protected override void OnAttached()
private void ListItemClicked(object sender, ItemClickEventArgs e)
{
var container =AssociatedObject.ContainerFromItem(e.ClickedItem);

var item = container as SelectorItem;
var content = item?.ContentTemplateRoot as FrameworkElement;
if (content is null) return;
FlyoutBase.ShowAttachedFlyout(content);
if (content is null && e.ClickedItem is FrameworkElement element)
{
FlyoutBase.ShowAttachedFlyout(element);
}
else
{
FlyoutBase.ShowAttachedFlyout(content);
}
}

protected override void OnDetaching()
Expand Down
44 changes: 27 additions & 17 deletions FluentWeather.Uwp/Controls/HourlyTemperatureChart.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@
<chart:CategoricalAxis
x:Uid="TimeAxis"
LabelFormat="{}{0,0:HH:00}"
MajorTickInterval="{x:Bind MajorTickInterval, Mode=OneWay}"
PlotMode="OnTicksPadded"
MajorTickInterval="{x:Bind MajorTickInterval,Mode=OneWay}"
ShowLabels="{x:Bind IsHorizontalAxisVisible, Mode=OneWay}">
<chart:CategoricalAxis.LineStyle>
<Style TargetType="Line">
Expand All @@ -44,14 +44,11 @@
</chart:CategoricalAxis>
</chart:RadCartesianChart.HorizontalAxis>
<chart:RadCartesianChart.VerticalAxis>
<chart:LinearAxis

Maximum="{x:Bind MaxTemperature}"
Minimum="{x:Bind MinTemperature}">
<chart:LinearAxis Maximum="{x:Bind ChartMaxTemperature}" Minimum="{x:Bind ChartMinTemperature}">
<chart:LinearAxis.LabelTemplate>
<DataTemplate>
<TextBlock>
<Run Text="{Binding Converter={StaticResource ConvertTemperatureUniter},ConverterParameter=true}"/><Run Text="°"/>
<Run Text="{Binding Converter={StaticResource ConvertTemperatureUniter}, ConverterParameter=true}" /><Run Text="°" />
</TextBlock>
</DataTemplate>
</chart:LinearAxis.LabelTemplate>
Expand All @@ -75,31 +72,40 @@
ClipToPlotArea="False"
CombineMode="Cluster"
ItemsSource="{x:Bind HourlyForecasts, Mode=OneWay}"
Stroke="{ThemeResource SystemControlBackgroundBaseHighBrush}"
ShowLabels="True"
StrokeThickness="3">
<chart:SplineAreaSeries.Stroke>
<SolidColorBrush Opacity="0.8" Color="{ThemeResource SystemBaseHighColor}" />
</chart:SplineAreaSeries.Stroke>
<chart:SplineAreaSeries.Fill>
<LinearGradientBrush Opacity="0.4" StartPoint="0.5,0" EndPoint="0.5,1">
<LinearGradientBrush Opacity="0.3" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="{ThemeResource SystemBaseHighColor}" />
<GradientStop Offset="1" Color="Transparent" />
</LinearGradientBrush>
</chart:SplineAreaSeries.Fill>
<chart:SplineAreaSeries.LabelDefinitions>
<chart:ChartSeriesLabelDefinition
Margin="0,8,0,0"
Margin="0,14,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
VerticalAlignment="Top">
<chart:ChartSeriesLabelDefinition.Template>
<DataTemplate>
<Image Height="32" Source="{Binding DataItem, Converter={StaticResource WeatherToIconConverter}}" />
</DataTemplate>
</chart:ChartSeriesLabelDefinition.Template>
</chart:ChartSeriesLabelDefinition>
</chart:SplineAreaSeries.LabelDefinitions>
<chart:SplineAreaSeries.CategoryBinding>
<chart:PropertyNameDataPointBinding PropertyName="Time" />
</chart:SplineAreaSeries.CategoryBinding>
<chart:SplineAreaSeries.ValueBinding>
<chart:PropertyNameDataPointBinding PropertyName="Temperature" />
<chart:PropertyNameDataPointBinding PropertyName="Temperature" />
</chart:SplineAreaSeries.ValueBinding>
<chart:SplineAreaSeries.VerticalAxis>
<chart:LinearAxis
HorizontalLocation="Right"
Maximum="{x:Bind MaxTemperature}"
Minimum="{x:Bind MinTemperature}"
Maximum="{x:Bind ChartMaxTemperature}"
Minimum="{x:Bind ChartMinTemperature}"
ShowLabels="False">
<chart:LinearAxis.LineStyle>
<Style TargetType="Line">
Expand All @@ -120,17 +126,21 @@
HorizontalAlignment="Center"
Orientation="Horizontal">
<TextBlock>
<Run Text="{Binding DataPoint.DataItem.Temperature,Converter={StaticResource ConvertTemperatureUniter}}" /><Run Text="°" />
<Run Text="{Binding DataPoint.DataItem.Temperature, Converter={StaticResource ConvertTemperatureUniter}}" /><Run Text="°" />
<Run Text="{Binding DataPoint.DataItem.Description}" />
</TextBlock>
</StackPanel>
</DataTemplate>
</chart:ChartTrackBallBehavior.TrackInfoTemplate>
<chart:ChartTrackBallBehavior.IntersectionTemplate>
<DataTemplate>
<Border Background="{ThemeResource SystemControlAcrylicElementBrush}" CornerRadius="{ThemeResource ControlCornerRadius}">
<TextBlock Margin="6,4">
<Run FontWeight="SemiBold" Text="{Binding DataPoint.DataItem.Temperature,Converter={StaticResource ConvertTemperatureUniter}}" /><Run Text="°" />
<Border
Background="{ThemeResource AcrylicInAppFillColorDefaultBrush}"
BorderBrush="{ThemeResource SurfaceStrokeColorFlyoutBrush}"
BorderThickness="1"
CornerRadius="{ThemeResource ControlCornerRadius}">
<TextBlock Margin="8,6">
<Run FontWeight="SemiBold" Text="{Binding DataPoint.DataItem.Temperature, Converter={StaticResource ConvertTemperatureUniter}}" /><Run Text="°" />
<Run Text="{Binding DataPoint.DataItem.Description}" />
</TextBlock>
</Border>
Expand Down
6 changes: 4 additions & 2 deletions FluentWeather.Uwp/Controls/HourlyTemperatureChart.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Telerik.UI.Xaml.Controls.Chart;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
Expand All @@ -21,9 +22,9 @@ namespace FluentWeather.Uwp.Controls
{
public sealed partial class HourlyTemperatureChart : UserControl
{
private int MaxTemperature => HourlyForecasts is not null && HourlyForecasts.Count != 0 ? HourlyForecasts.Max(p => p.Temperature) : 45;
private int ChartMaxTemperature => HourlyForecasts is not null && HourlyForecasts.Count != 0 ? HourlyForecasts.Max(p => p.Temperature)+1 : 45;

private int MinTemperature => HourlyForecasts is not null && HourlyForecasts.Count != 0 ? HourlyForecasts.Min(p => p.Temperature) : 0;
private int ChartMinTemperature => HourlyForecasts is not null && HourlyForecasts.Count != 0 ? HourlyForecasts.Min(p => p.Temperature) -1 : 0;
public HourlyTemperatureChart()
{
this.InitializeComponent();
Expand Down Expand Up @@ -64,4 +65,5 @@ private static void OnPropertyChanged(DependencyObject d, DependencyPropertyChan
chart.Bindings.Update();
}
}

}
7 changes: 7 additions & 0 deletions FluentWeather.Uwp/FluentWeather.Uwp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -595,6 +595,10 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Styles\SegmentedItem.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Themes\ClassicThemeStyles.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
Expand Down Expand Up @@ -623,6 +627,9 @@
<PackageReference Include="CommunityToolkit.Mvvm">
<Version>8.2.2</Version>
</PackageReference>
<PackageReference Include="CommunityToolkit.Uwp.Controls.Primitives">
<Version>8.0.240109</Version>
</PackageReference>
<PackageReference Include="CommunityToolkit.Uwp.Controls.Segmented">
<Version>8.0.240109</Version>
</PackageReference>
Expand Down
Loading

0 comments on commit b5857f4

Please sign in to comment.