远程图标功能 完成
This commit is contained in:
@@ -21,22 +21,30 @@
|
|||||||
<Grid Margin="8,20,8,20">
|
<Grid Margin="8,20,8,20">
|
||||||
|
|
||||||
<hc:UniformSpacingPanel Spacing="10" Margin="0,10,0,-10">
|
<hc:UniformSpacingPanel Spacing="10" Margin="0,10,0,-10">
|
||||||
|
<WrapPanel HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||||
<TextBlock Text="SVG 图标地址:" Style="{StaticResource LeftTB}"/>
|
<TextBlock Text="SVG 图标地址:" Style="{StaticResource LeftTB}"/>
|
||||||
<TextBox x:Name="IconUrl" Text="{Binding Name, Mode=OneWay}" Width="240" FontSize="14"/>
|
<TextBlock Text="*" Foreground="Red"/>
|
||||||
|
</WrapPanel>
|
||||||
|
<TextBox x:Name="IconUrl" Text="{Binding CustomIconUrl, Mode=OneWay}" Width="240" FontSize="14"/>
|
||||||
</hc:UniformSpacingPanel>
|
</hc:UniformSpacingPanel>
|
||||||
|
|
||||||
<hc:UniformSpacingPanel Spacing="10" Margin="0,58.276,0,-58.276">
|
<hc:UniformSpacingPanel Spacing="10" Margin="0,58.276,0,-58.276">
|
||||||
|
<WrapPanel HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||||
<TextBlock Text="JSON 配置地址:" Style="{StaticResource LeftTB}"/>
|
<TextBlock Text="JSON 配置地址:" Style="{StaticResource LeftTB}"/>
|
||||||
<TextBox x:Name="JsonUrl" Text="{Binding Name, Mode=OneWay}" Width="240" FontSize="14"/>
|
<TextBlock Text="*" Foreground="Red"/>
|
||||||
|
</WrapPanel>
|
||||||
|
<TextBox x:Name="JsonUrl" Text="{Binding CustomIconJsonUrl, Mode=OneWay}" Width="240" FontSize="14"/>
|
||||||
</hc:UniformSpacingPanel>
|
</hc:UniformSpacingPanel>
|
||||||
|
<TextBlock Text="注: 需配置正确的url方可加载远程图标!" Foreground="Red" Margin="10,95,-10,-92" />
|
||||||
|
|
||||||
<!--<hc:UniformSpacingPanel Spacing="10" Margin="246.206,124.551,-246.206,-124.551">
|
<hc:UniformSpacingPanel Spacing="10" Margin="246.206,124.551,-246.206,-124.551">
|
||||||
<Button Content="取消" Click=""
|
<Button Content="取消" Command="hc:ControlCommands.Close"
|
||||||
/>
|
/>
|
||||||
<Button Content="保存" Click=""
|
<Button Content="保存" Click="Confirm_Click"
|
||||||
|
Command="hc:ControlCommands.Close"
|
||||||
Background="#5BC0DE"
|
Background="#5BC0DE"
|
||||||
Foreground="White"/>
|
Foreground="White"/>
|
||||||
</hc:UniformSpacingPanel>-->
|
</hc:UniformSpacingPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
<!--<Button Width="22" Height="22" Command="hc:ControlCommands.Close" Style="{StaticResource ButtonIcon}" Foreground="{DynamicResource {x:Static SystemColors.ControlDarkDarkBrushKey}}" hc:IconElement.Geometry="{StaticResource ErrorGeometry}" Padding="0" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,4,4,0"/>-->
|
<!--<Button Width="22" Height="22" Command="hc:ControlCommands.Close" Style="{StaticResource ButtonIcon}" Foreground="{DynamicResource {x:Static SystemColors.ControlDarkDarkBrushKey}}" hc:IconElement.Geometry="{StaticResource ErrorGeometry}" Padding="0" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,4,4,0"/>-->
|
||||||
</hc:SimplePanel>
|
</hc:SimplePanel>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using GeekDesk.Util;
|
using GeekDesk.Control.Windows;
|
||||||
|
using GeekDesk.Util;
|
||||||
using GeekDesk.ViewModel;
|
using GeekDesk.ViewModel;
|
||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
using System;
|
using System;
|
||||||
@@ -17,8 +18,8 @@ namespace GeekDesk.Control.Other
|
|||||||
|
|
||||||
public CustomIconUrlDialog(AppConfig appConfig)
|
public CustomIconUrlDialog(AppConfig appConfig)
|
||||||
{
|
{
|
||||||
this.DataContext = appConfig;
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
this.DataContext = appConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CustomIconUrlDialog()
|
public CustomIconUrlDialog()
|
||||||
@@ -26,5 +27,18 @@ namespace GeekDesk.Control.Other
|
|||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Confirm_Click(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
AppConfig appConfig = this.DataContext as AppConfig;
|
||||||
|
appConfig.CustomIconJsonUrl = JsonUrl.Text.Trim();
|
||||||
|
appConfig.CustomIconUrl = IconUrl.Text.Trim();
|
||||||
|
if (!StringUtil.IsEmpty(IconUrl.Text) && !StringUtil.IsEmpty(JsonUrl.Text))
|
||||||
|
{
|
||||||
|
IconfontWindow.vm.IsSettingUrl = "true";
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
IconfontWindow.vm.IsSettingUrl = "false";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
>
|
>
|
||||||
<WrapPanel HorizontalAlignment="Center" VerticalAlignment="Top">
|
<WrapPanel HorizontalAlignment="Center" VerticalAlignment="Top">
|
||||||
<ListBox x:Name="IconListBox" ItemsSource="{Binding}" BorderThickness="0" Background="AliceBlue">
|
<ListBox x:Name="IconListBox" ItemsSource="{Binding Iconfonts}" BorderThickness="0" Background="AliceBlue">
|
||||||
<ListBox.ItemsPanel>
|
<ListBox.ItemsPanel>
|
||||||
<ItemsPanelTemplate>
|
<ItemsPanelTemplate>
|
||||||
<WrapPanel Orientation="Horizontal" Background="Transparent"/>
|
<WrapPanel Orientation="Horizontal" Background="Transparent"/>
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
<ListBox.ItemTemplate>
|
<ListBox.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
<StackPanel Tag="{Binding}" Width="80" Height="80">
|
<StackPanel Width="80" Height="80">
|
||||||
<Button Background="Transparent"
|
<Button Background="Transparent"
|
||||||
BorderThickness="0"
|
BorderThickness="0"
|
||||||
IsEnabled="False"
|
IsEnabled="False"
|
||||||
|
|||||||
@@ -23,41 +23,8 @@ namespace GeekDesk.Control.UserControls.IconFont
|
|||||||
{
|
{
|
||||||
public IconPannel()
|
public IconPannel()
|
||||||
{
|
{
|
||||||
//DataContext = this;
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static readonly DependencyProperty IconfontListProperty = DependencyProperty.Register("IconfontList", typeof(List<IconfontInfo>), typeof(IconPannel));
|
|
||||||
public List<IconfontInfo> IconfontList
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return (List<IconfontInfo>)GetValue(IconfontListProperty);
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
SetValue(IconfontListProperty, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static readonly DependencyProperty IconInfoProperty = DependencyProperty.Register("IconInfo", typeof(IconfontInfo), typeof(IconPannel));
|
|
||||||
|
|
||||||
public IconfontInfo IconInfo
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return (IconfontInfo)GetValue(IconInfoProperty);
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
SetValue(IconInfoProperty, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
||||||
{
|
|
||||||
IconfontInfo info = IconfontList[IconListBox.SelectedIndex];
|
|
||||||
IconInfo = info;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,25 +27,17 @@
|
|||||||
|
|
||||||
<Border MouseDown="DragMove">
|
<Border MouseDown="DragMove">
|
||||||
<Grid MouseDown="DragMove">
|
<Grid MouseDown="DragMove">
|
||||||
|
<TextBox x:Name="CheckSettingUrl" Visibility="Collapsed" Text="{Binding IsSettingUrl}" TextChanged="CheckSettingUrl_TextChanged"/>
|
||||||
<hc:TabControl x:Name="MyTabControl" IsAnimationEnabled="True" SelectionChanged="TabControl_SelectionChanged" ShowContextMenu="True" IsTabFillEnabled="True" Margin="20,30,20,20" Height="350" VerticalAlignment="Top">
|
<hc:TabControl x:Name="MyTabControl" IsAnimationEnabled="True" SelectionChanged="TabControl_SelectionChanged" ShowContextMenu="True" IsTabFillEnabled="True" Margin="20,30,20,20" Height="350" VerticalAlignment="Top">
|
||||||
<hc:TabItem Tag="System" IsSelected="True" Header="系统图标" hc:IconElement.Height="16" hc:IconElement.Width="16" hc:IconElement.Geometry="{StaticResource CalendarGeometry}" >
|
<hc:TabItem Tag="System" IsSelected="True" Header="系统图标" hc:IconElement.Height="16" hc:IconElement.Width="16" hc:IconElement.Geometry="{StaticResource CalendarGeometry}" >
|
||||||
<hc:SimplePanel Background="AliceBlue">
|
<hc:SimplePanel Background="AliceBlue">
|
||||||
<!--<hc:UniformSpacingPanel Spacing="10" Margin="0,10,0,-10">
|
|
||||||
<TextBlock Text="SVG 图标地址:" Style="{StaticResource LeftTB}"/>
|
|
||||||
<TextBox x:Name="IconUrl1" Text="{Binding Name, Mode=OneWay}" Width="240" FontSize="11"/>
|
|
||||||
</hc:UniformSpacingPanel>
|
|
||||||
<hc:UniformSpacingPanel Spacing="10" Margin="0,40,0,-40">
|
|
||||||
<TextBlock Text="JSON 配置地址:" Style="{StaticResource LeftTB}"/>
|
|
||||||
<TextBox x:Name="JsonUrl2" Text="{Binding Name, Mode=OneWay}" Width="240" FontSize="11"/>
|
|
||||||
</hc:UniformSpacingPanel>-->
|
|
||||||
<uc:IconPannel x:Name="SystemIcon"/>
|
<uc:IconPannel x:Name="SystemIcon"/>
|
||||||
</hc:SimplePanel>
|
</hc:SimplePanel>
|
||||||
</hc:TabItem>
|
</hc:TabItem>
|
||||||
<hc:TabItem Tag="Custom" Header="自定义图标" hc:IconElement.Height="16" hc:IconElement.Width="16" hc:IconElement.Geometry="{StaticResource CalendarGeometry}">
|
<hc:TabItem Tag="Custom" Header="自定义图标" hc:IconElement.Height="16" hc:IconElement.Width="16" hc:IconElement.Geometry="{StaticResource CalendarGeometry}">
|
||||||
<hc:SimplePanel Background="AliceBlue">
|
<hc:SimplePanel Background="AliceBlue">
|
||||||
<hc:LoadingCircle/>
|
|
||||||
<uc:IconPannel x:Name="CustomIcon"/>
|
<uc:IconPannel x:Name="CustomIcon"/>
|
||||||
|
<hc:LoadingCircle x:Name="LoadingEle"/>
|
||||||
</hc:SimplePanel>
|
</hc:SimplePanel>
|
||||||
</hc:TabItem>
|
</hc:TabItem>
|
||||||
</hc:TabControl>
|
</hc:TabControl>
|
||||||
|
|||||||
@@ -4,17 +4,13 @@ using GeekDesk.ViewModel;
|
|||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.ComponentModel;
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using System.Windows.Data;
|
|
||||||
using System.Windows.Documents;
|
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
using System.Windows.Media;
|
|
||||||
using System.Windows.Media.Imaging;
|
|
||||||
using System.Windows.Shapes;
|
|
||||||
|
|
||||||
namespace GeekDesk.Control.Windows
|
namespace GeekDesk.Control.Windows
|
||||||
{
|
{
|
||||||
@@ -23,17 +19,24 @@ namespace GeekDesk.Control.Windows
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class IconfontWindow : Window
|
public partial class IconfontWindow : Window
|
||||||
{
|
{
|
||||||
|
private static AppConfig appConfig = MainWindow.appData.AppConfig;
|
||||||
private static MenuInfo menuInfo;
|
private static MenuInfo menuInfo;
|
||||||
private static List<IconfontInfo> systemIcons;
|
private static List<IconfontInfo> systemIcons;
|
||||||
private static List<IconfontInfo> customIcons;
|
private static List<IconfontInfo> customIcons;
|
||||||
|
public static IconfontViewModel vm;
|
||||||
private IconfontWindow(List<IconfontInfo> icons, MenuInfo menuInfo)
|
private IconfontWindow(List<IconfontInfo> icons, MenuInfo menuInfo)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
systemIcons = icons;
|
systemIcons = icons;
|
||||||
this.DataContext = systemIcons;
|
|
||||||
this.Topmost = true;
|
this.Topmost = true;
|
||||||
IconfontWindow.menuInfo = menuInfo;
|
IconfontWindow.menuInfo = menuInfo;
|
||||||
InitializeComponent();
|
vm = new IconfontViewModel
|
||||||
|
{
|
||||||
|
Iconfonts = systemIcons
|
||||||
|
};
|
||||||
|
this.DataContext = vm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -64,14 +67,33 @@ namespace GeekDesk.Control.Windows
|
|||||||
{
|
{
|
||||||
case "Custom":
|
case "Custom":
|
||||||
CustomButton.IsEnabled = true;
|
CustomButton.IsEnabled = true;
|
||||||
this.DataContext = customIcons;
|
if (StringUtil.IsEmpty(appConfig.CustomIconUrl) || StringUtil.IsEmpty(appConfig.CustomIconJsonUrl))
|
||||||
|
{
|
||||||
|
LoadingEle.Visibility = Visibility.Visible;
|
||||||
|
CustomIcon.Visibility = Visibility.Collapsed;
|
||||||
|
HandyControl.Controls.Dialog.Show(new CustomIconUrlDialog(appConfig));
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
if (customIcons == null)
|
||||||
|
{
|
||||||
|
LoadingOnlineIcon();
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
vm.Iconfonts = customIcons;
|
||||||
|
LoadingEle.Visibility = Visibility.Collapsed;
|
||||||
|
CustomIcon.Visibility = Visibility.Visible;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (CustomButton != null)
|
if (CustomButton != null)
|
||||||
{
|
{
|
||||||
CustomButton.IsEnabled = false;
|
CustomButton.IsEnabled = false;
|
||||||
}
|
}
|
||||||
this.DataContext = systemIcons;
|
if (vm != null)
|
||||||
|
{
|
||||||
|
vm.Iconfonts = systemIcons;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -113,8 +135,80 @@ namespace GeekDesk.Control.Windows
|
|||||||
|
|
||||||
private void CustomButton_Click(object sender, RoutedEventArgs e)
|
private void CustomButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
HandyControl.Controls.Dialog.Show(new CustomIconUrlDialog(appConfig));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void CheckSettingUrl_TextChanged(object sender, TextChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (CheckSettingUrl.Text == "true")
|
||||||
|
{
|
||||||
|
LoadingOnlineIcon();
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
LoadingEle.IsRunning = true;
|
||||||
|
CustomIcon.Visibility = Visibility.Collapsed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void LoadingOnlineIcon()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string svgJsStr = HttpUtil.Get(appConfig.CustomIconUrl);
|
||||||
|
string jsonStr = HttpUtil.Get(appConfig.CustomIconJsonUrl);
|
||||||
|
List<IconfontInfo> icons = SvgToGeometry.GetIconfonts(svgJsStr, jsonStr);
|
||||||
|
customIcons = icons;
|
||||||
|
vm.Iconfonts = customIcons;
|
||||||
|
LoadingEle.Visibility = Visibility.Collapsed;
|
||||||
|
CustomIcon.Visibility = Visibility.Visible;
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
HandyControl.Controls.Growl.WarningGlobal("加载远程图标异常!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class IconfontViewModel : INotifyPropertyChanged
|
||||||
|
{
|
||||||
|
private List<IconfontInfo> iconfonts;
|
||||||
|
private string isSettingUrl;
|
||||||
|
|
||||||
|
public List<IconfontInfo> Iconfonts
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return iconfonts;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
iconfonts = value;
|
||||||
|
OnPropertyChanged("Iconfonts");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string IsSettingUrl
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return isSettingUrl;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
isSettingUrl = value;
|
||||||
|
OnPropertyChanged("IsSettingUrl");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public event PropertyChangedEventHandler PropertyChanged;
|
||||||
|
private void OnPropertyChanged(string propertyName)
|
||||||
|
{
|
||||||
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -177,6 +177,7 @@
|
|||||||
<Compile Include="Util\MouseUtil.cs" />
|
<Compile Include="Util\MouseUtil.cs" />
|
||||||
<Compile Include="Util\MouseUtilities.cs" />
|
<Compile Include="Util\MouseUtilities.cs" />
|
||||||
<Compile Include="Util\ShellContextMenu.cs" />
|
<Compile Include="Util\ShellContextMenu.cs" />
|
||||||
|
<Compile Include="Util\StringUtil.cs" />
|
||||||
<Compile Include="Util\SvgToGeometry.cs" />
|
<Compile Include="Util\SvgToGeometry.cs" />
|
||||||
<Compile Include="Util\SystemIcon.cs" />
|
<Compile Include="Util\SystemIcon.cs" />
|
||||||
<Compile Include="ViewModel\AppConfig.cs" />
|
<Compile Include="ViewModel\AppConfig.cs" />
|
||||||
@@ -265,10 +266,6 @@
|
|||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
</Page>
|
</Page>
|
||||||
<Page Include="Themes\Generic.xaml">
|
|
||||||
<Generator>MSBuild:Compile</Generator>
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</Page>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Properties\AssemblyInfo.cs">
|
<Compile Include="Properties\AssemblyInfo.cs">
|
||||||
@@ -292,9 +289,6 @@
|
|||||||
<Resource Include="Fonts\iconfont.ttf">
|
<Resource Include="Fonts\iconfont.ttf">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Resource>
|
</Resource>
|
||||||
<Resource Include="iconfont.ttf">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Resource>
|
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
<None Include="Properties\Settings.settings">
|
<None Include="Properties\Settings.settings">
|
||||||
<Generator>SettingsSingleFileGenerator</Generator>
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
<ResourceDictionary
|
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:local="clr-namespace:GeekDesk.Control.Other">
|
|
||||||
|
|
||||||
|
|
||||||
</ResourceDictionary>
|
|
||||||
@@ -11,7 +11,7 @@ namespace GeekDesk.Util
|
|||||||
public class HttpUtil
|
public class HttpUtil
|
||||||
{
|
{
|
||||||
#region Get请求
|
#region Get请求
|
||||||
public string Get(string url)
|
public static string Get(string url)
|
||||||
{
|
{
|
||||||
//创建Web访问对 象
|
//创建Web访问对 象
|
||||||
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
|
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
|
||||||
|
|||||||
22
Util/StringUtil.cs
Normal file
22
Util/StringUtil.cs
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace GeekDesk.Util
|
||||||
|
{
|
||||||
|
public class StringUtil
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
public static bool IsEmpty(string str)
|
||||||
|
{
|
||||||
|
if (str == null || str.Length == 0 || str.Trim().Length == 0)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -26,6 +26,18 @@ namespace GeekDesk.Util
|
|||||||
|
|
||||||
StreamReader streamReader = new StreamReader(svgStream);
|
StreamReader streamReader = new StreamReader(svgStream);
|
||||||
string svgJsStr = streamReader.ReadToEnd();
|
string svgJsStr = streamReader.ReadToEnd();
|
||||||
|
JObject jo = ReadJson(jsonStream);
|
||||||
|
|
||||||
|
return GetIconfonts(svgJsStr, jo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<IconfontInfo> GetIconfonts(string svgJsStr, string jsonStr)
|
||||||
|
{
|
||||||
|
return GetIconfonts(svgJsStr, JObject.Parse(jsonStr));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<IconfontInfo> GetIconfonts(string svgJsStr, JObject json)
|
||||||
|
{
|
||||||
|
|
||||||
svgJsStr = svgJsStr.Substring(svgJsStr.IndexOf("<svg>"),
|
svgJsStr = svgJsStr.Substring(svgJsStr.IndexOf("<svg>"),
|
||||||
svgJsStr.Length - (svgJsStr.Length - (svgJsStr.IndexOf("</svg>") + "</svg>".Length)) - svgJsStr.IndexOf("<svg>"));
|
svgJsStr.Length - (svgJsStr.Length - (svgJsStr.IndexOf("</svg>") + "</svg>".Length)) - svgJsStr.IndexOf("<svg>"));
|
||||||
@@ -34,8 +46,7 @@ namespace GeekDesk.Util
|
|||||||
xmlDoc.LoadXml(svgJsStr);
|
xmlDoc.LoadXml(svgJsStr);
|
||||||
XmlNodeList nodeList = xmlDoc.SelectNodes("/svg/symbol");
|
XmlNodeList nodeList = xmlDoc.SelectNodes("/svg/symbol");
|
||||||
|
|
||||||
JObject jo = ReadJson(jsonStream);
|
JArray ja = JArray.Parse(json["glyphs"].ToString());
|
||||||
JArray ja = JArray.Parse(jo["glyphs"].ToString());
|
|
||||||
|
|
||||||
List<IconfontInfo> listInfo = new List<IconfontInfo>();
|
List<IconfontInfo> listInfo = new List<IconfontInfo>();
|
||||||
for (int i = 0; i < nodeList.Count; i++)
|
for (int i = 0; i < nodeList.Count; i++)
|
||||||
|
|||||||
BIN
iconfont.ttf
BIN
iconfont.ttf
Binary file not shown.
Reference in New Issue
Block a user