refactor<*>: rewrite all codes...

This commit is contained in:
leo 2021-04-29 20:05:55 +08:00
parent 89ff8aa744
commit 30ab8ae954
342 changed files with 17208 additions and 19633 deletions

View file

@ -1,22 +1,23 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/Border.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/Button.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/CheckBox.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/ComboBox.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/ContextMenu.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/DataGrid.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/HyperLink.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/Label.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/IconButton.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/ListBox.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/ListView.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/Path.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/RadioButton.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/ScrollBar.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/ScrollViewer.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/TabControl.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/TextBlock.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/TextBox.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/ToggleButton.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/Tooltip.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/TreeView.xaml"/>
</ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/Resources/Styles/Tree.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

View file

@ -20,10 +20,11 @@
<Geometry x:Key="Icon.Search">M701.9062029 677.41589899L589.90712068 565.41681675a148.33953321 148.33953321 0 1 0-24.97646381 26.55648342L676.07895931 703.12160261z m-346.38891409-199.50786053a114.97681148 114.97681148 0 1 1 114.85527151 114.97681148A115.09835147 115.09835147 0 0 1 355.45651882 477.90803846z</Geometry>
<Geometry x:Key="Icon.Conflict">M352 64h320L960 352v320L672 960h-320L64 672v-320L352 64z m161.28 362.688L344.128 256 259.584 341.312 428.736 512l-169.152 170.688L344.128 768 513.28 597.312 682.432 768l84.544-85.312L597.824 512l169.152-170.688L682.432 256 513.28 426.688z</Geometry>
<Geometry x:Key="Icon.Clear">M899.1 869.6l-53-305.6H864c14.4 0 26-11.6 26-26V346c0-14.4-11.6-26-26-26H618V138c0-14.4-11.6-26-26-26H432c-14.4 0-26 11.6-26 26v182H160c-14.4 0-26 11.6-26 26v192c0 14.4 11.6 26 26 26h17.9l-53 305.6c-0.3 1.5-0.4 3-0.4 4.4 0 14.4 11.6 26 26 26h723c1.5 0 3-0.1 4.4-0.4 14.2-2.4 23.7-15.9 21.2-30zM204 390h272V182h72v208h272v104H204V390z m468 440V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H416V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H202.8l45.1-260H776l45.1 260H672z</Geometry>
<Geometry x:Key="Icon.List">M51.2 204.8h102.4v102.4H51.2V204.8z m204.8 0h716.8v102.4H256V204.8zM51.2 460.8h102.4v102.4H51.2V460.8z m204.8 0h716.8v102.4H256V460.8z m-204.8 256h102.4v102.4H51.2v-102.4z m204.8 0h716.8v102.4H256v-102.4z</Geometry>
<Geometry x:Key="Icon.Tree">M912 737l0 150L362 887l0-100 0-50 0-150 0-150 0-150L112 287l0-150 450 0 0 150L412 287l0 150L912 437l0 150L412 587l0 150L912 737z</Geometry>
<Geometry x:Key="Icon.Grid">M256 256l220.16 0 0 220.16-220.16 0 0-220.16ZM547.84 256l220.16 0 0 220.16-220.16 0 0-220.16ZM256 547.84l220.16 0 0 220.16-220.16 0 0-220.16ZM547.84 547.84l220.16 0 0 220.16-220.16 0 0-220.16Z</Geometry>
<Geometry x:Key="Icon.Error">M512 64C264.8 64 64 264.8 64 512s200.8 448 448 448 448-200.8 448-448S759.2 64 512 64z m238.4 641.6l-45.6 45.6L512 557.6 318.4 750.4l-45.6-45.6L467.2 512 273.6 318.4l45.6-45.6L512 467.2l193.6-193.6 45.6 45.6L557.6 512l192.8 193.6z</Geometry>
<Geometry x:Key="Icon.List">M0 33.28h1024v159.573333H0zM0 432.213333h1024v159.573334H0zM0 831.146667h1024v159.573333H0z</Geometry>
<Geometry x:Key="Icon.Tree">M1024 609.6v-224H640v48H256V224h128V0H0v224h128v752h512v48h384V800H640v48H256V561.6h384v48z</Geometry>
<Geometry x:Key="Icon.Grid">M30.191 271.093l240.907 0 0-240.907-240.907 0 0 240.907zM391.544 271.093l240.907 0 0-240.907-240.907 0 0 240.907zM752.907 30.191l0 240.907 240.907 0 0-240.907-240.907 0zM30.191 632.456l240.907 0 0-240.907-240.907 0 0 240.907zM391.544 632.456l240.907 0 0-240.907-240.907 0 0 240.907zM752.907 632.456l240.907 0 0-240.907-240.907 0 0 240.907zM30.191 993.809l240.907 0 0-240.907-240.907 0 0 240.907zM391.544 993.809l240.907 0 0-240.907-240.907 0 0 240.907zM752.907 993.809l240.907 0 0-240.907-240.907 0 0 240.907z</Geometry>
<Geometry x:Key="Icon.Down">M509.44 546.304l270.848-270.912 90.56 90.56-347.52 349.056-0.832-0.768-13.056 13.056-362.624-361.28 91.136-91.264z</Geometry>
<Geometry x:Key="Icon.DoubleDown">M256 224l1e-8 115.2L512 544l255.99999999-204.8 1e-8-115.2-256 204.80000001L256 224zM512 684.8l-256-204.8L256 595.2 512 800 768 595.2l0-115.2L512 684.8z</Geometry>
@ -35,7 +36,7 @@
<Geometry x:Key="Icon.Preference">M716.287923 383.129734c0 38.399973-6.501995 75.979947-19.353986 111.819923l-10.649993 29.695979 22.323985 22.374985 229.57984 229.477841c44.544969 44.594969 44.544969 117.094919 0 161.638888a113.612921 113.612921 0 0 1-80.792943 33.483976 113.561921 113.561921 0 0 1-80.792944-33.483976L547.020041 708.607509l-22.322985-22.322985-29.695979 10.649993a331.62177 331.62177 0 0 1-111.871923 19.352986A333.516769 333.516769 0 0 1 49.970385 383.129734c0-39.014973 6.758995-77.158947 20.019986-113.612921L252.570245 452.095687l35.275975 35.327975 35.276976-35.327975 128.972911-128.972911 35.276975-35.224976-35.276975-35.327975-182.629874-182.579874A330.956771 330.956771 0 0 1 383.130154 50.021965 333.516769 333.516769 0 0 1 716.287923 383.129734zM231.578259 31.589978l-22.886984 9.881993a22.219985 22.219985 0 0 0-5.887996 4.197997 19.455987 19.455987 0 0 0 0 27.545981l215.039851 215.244851L288.41022 417.79171 77.824366 207.103856a25.957982 25.957982 0 0 0-17.202988-7.065995 22.783984 22.783984 0 0 0-21.503985 15.00199 400.537722 400.537722 0 0 0-7.526995 16.588988A381.644735 381.644735 0 0 0 0.00042 383.999734c0 211.711853 172.236881 383.999734 383.999734 383.999734 44.287969 0 87.551939-7.525995 128.97291-22.322985L743.116905 975.819323A163.481887 163.481887 0 0 0 859.493824 1023.99929c43.92997 0 85.299941-17.099988 116.377919-48.179967a164.812886 164.812886 0 0 0 0-232.753838L745.676903 512.972644C760.524893 471.551673 767.999888 428.338703 767.999888 383.999734 767.999888 172.287881 595.763007 0 384.000154 0c-52.735963 0-103.935928 10.649993-152.421895 31.589978z</Geometry>
<Geometry x:Key="Icon.Setting">M928 499.86a21.16 21.16 0 0 0-18.72-19.88L858 471.68a10.84 10.84 0 0 1-9-9.34c-0.98-6.3-2-12.84-3.4-19.04a11.04 11.04 0 0 1 5.26-11.7l45.56-25.3a20.7 20.7 0 0 0 10-25.66l-7.9-21.8a20.64 20.64 0 0 0-24.26-13.02l-51.1 10a11.02 11.02 0 0 1-11.64-5.62c-2.98-5.58-6.22-11.26-9.6-16.84a11.2 11.2 0 0 1 0.88-13l34-39.28a20.84 20.84 0 0 0 0.78-27.52l-14.84-17.82a20.48 20.48 0 0 0-27.16-4l-44.74 26.86a10.78 10.78 0 0 1-12.78-1.26c-4.94-4.34-10-8.52-14.74-12.38a10.9 10.9 0 0 1-3.44-12.42l18.52-48.8a20.7 20.7 0 0 0-8.62-26.14l-20.18-11.78a20.6 20.6 0 0 0-26.9 5.66L650 192.56a9.2 9.2 0 0 1-11.2 3.44c-1.22-0.5-11.54-4.72-19.56-7.4a10.84 10.84 0 0 1-7.48-10.46l0.78-52.14a20.96 20.96 0 0 0-17.14-21.76l-22.9-4a20.9 20.9 0 0 0-23.5 14.34L532 164.2a10.92 10.92 0 0 1-10.72 7.3h-19.5a11 11 0 0 1-10.6-7.34l-16.92-49.34a20.92 20.92 0 0 0-23.54-14.5l-22.94 4a20.92 20.92 0 0 0-17.12 21.58l0.8 52.32a10.9 10.9 0 0 1-7.72 10.5c-4.58 1.78-14.52 5.58-19.04 7.26-4 1.44-8.36-0.14-11.88-4.2l-32.52-40A20.6 20.6 0 0 0 313.38 146l-20.12 11.66A20.72 20.72 0 0 0 284.62 184l18.5 48.68a11.08 11.08 0 0 1-3.4 12.46c-4.86 4-9.84 8-14.8 12.44a10.76 10.76 0 0 1-12.7 1.28L228 231.48a20.8 20.8 0 0 0-27.22 4L186 253.26a20.62 20.62 0 0 0 0.74 27.5L220.9 320a10.84 10.84 0 0 1 0.9 12.9c-3.42 5.44-6.68 11.16-9.64 16.88a11.06 11.06 0 0 1-11.72 5.64l-51.02-9.86a20.68 20.68 0 0 0-24.28 13.02l-8 21.76a20.76 20.76 0 0 0 10 25.7l45.56 25.3a10.78 10.78 0 0 1 5.3 11.84l-0.48 2.54c-1.04 5.58-2 10.86-2.92 16.48a10.96 10.96 0 0 1-8.92 9.28l-51.38 8.3A20.84 20.84 0 0 0 96 500.32v23.16A20.52 20.52 0 0 0 114.32 544l51.36 8.28a10.82 10.82 0 0 1 9 9.34c0.98 6.32 2 12.84 3.4 19.04a11.04 11.04 0 0 1-5.26 11.7l-45.54 25.34a20.7 20.7 0 0 0-10 25.66l8 21.8a20.66 20.66 0 0 0 24.26 13.02l51.1-9.9a10.98 10.98 0 0 1 11.64 5.62c3 5.6 6.22 11.26 9.6 16.84a11.16 11.16 0 0 1-0.88 13l-34 39.26a20.82 20.82 0 0 0-1 27.54l14.82 17.82a20.46 20.46 0 0 0 27.16 4l44.74-26.86a10.78 10.78 0 0 1 12.78 1.26c4.96 4.34 10 8.52 14.74 12.38a10.94 10.94 0 0 1 3.46 12.42l-18.54 48.8a20.7 20.7 0 0 0 8.62 26.14l20.22 11.68a20.6 20.6 0 0 0 26.9-5.64L374 831.84c2.8-3.46 7.2-5 10.46-3.68 6.96 2.88 11.62 4.5 19.88 7.26a10.88 10.88 0 0 1 7.5 10.46l-0.8 52.1a21 21 0 0 0 17.14 21.76l22.9 4a20.86 20.86 0 0 0 23.5-14.34l17-49.54a10.9 10.9 0 0 1 10.72-7.3h19.5a10.98 10.98 0 0 1 10.6 7.34l16.94 49.34a20.96 20.96 0 0 0 20 14.82 19.48 19.48 0 0 0 3.56-0.32l22.94-4a20.92 20.92 0 0 0 17.12-21.58l-0.8-52.32a10.86 10.86 0 0 1 7.5-10.4c7.68-2.58 13.08-4.66 17.82-6.5l1.2-0.46c6.2-2.14 9.2 0.46 10.94 2.62l33.5 41.26A20.6 20.6 0 0 0 710 878l20.14-11.66a20.7 20.7 0 0 0 8.62-26.2l-18.48-48.68a11.04 11.04 0 0 1 3.38-12.46c4.86-4 9.84-8 14.8-12.44a10.78 10.78 0 0 1 12.76-1.24l44.78 26.8a20.78 20.78 0 0 0 27.22-4l14.8-17.8a20.62 20.62 0 0 0-0.74-27.5l-34.12-39.34a10.84 10.84 0 0 1-0.9-12.9c3.42-5.42 6.68-11.14 9.64-16.88a11.1 11.1 0 0 1 11.72-5.64l50.96 9.94a20.68 20.68 0 0 0 24.28-13.02l7.9-21.76a20.74 20.74 0 0 0-10-25.68l-45.6-25.34a10.8 10.8 0 0 1-5.22-11.78l0.48-2.54c1.04-5.58 2-10.86 2.92-16.48a10.96 10.96 0 0 1 8.92-9.28l51.38-8.28a20.86 20.86 0 0 0 18.36-20.56v-23.42z m-564.9 188a31.6 31.6 0 0 1-50.94 5.32 270.12 270.12 0 0 1 0.84-363.3 31.62 31.62 0 0 1 51 5.54l91.3 160.7a31.7 31.7 0 0 1 0 31.48zM512 782.22a269.5 269.5 0 0 1-56.62-6 31.62 31.62 0 0 1-20.46-46.72l92-160a31.58 31.58 0 0 1 27.4-15.86h184.28a31.6 31.6 0 0 1 30.2 41.06c-34.98 108.64-136.8 187.52-256.8 187.52z m15.02-327.8L436 294.14a31.62 31.62 0 0 1 20.62-46.6 268 268 0 0 1 55.38-5.76c120 0 221.82 78.88 256.74 187.58a31.6 31.6 0 0 1-30.2 41.06h-184a31.56 31.56 0 0 1-27.52-16z</Geometry>
<Geometry x:Key="Icon.Info">M549.76 627.2h-80.96v-21.44a141.76 141.76 0 0 1 13.12-64 198.08 198.08 0 0 1 52.16-57.28 389.76 389.76 0 0 0 46.72-41.6 55.68 55.68 0 0 0 11.84-34.24 57.92 57.92 0 0 0-20.8-44.8 81.28 81.28 0 0 0-56-18.56 85.12 85.12 0 0 0-56.96 19.52 103.36 103.36 0 0 0-32 59.2l-82.24-10.24a136.32 136.32 0 0 1 48.64-96A171.84 171.84 0 0 1 512 276.48a178.24 178.24 0 0 1 122.56 40.32 121.92 121.92 0 0 1 45.44 93.76 103.04 103.04 0 0 1-16.64 56 366.4 366.4 0 0 1-71.36 72A136.32 136.32 0 0 0 556.16 576a128 128 0 0 0-6.4 51.2z m-81.28 120.32v-89.28h89.28v89.28zM512 64a448 448 0 1 0 448 448A448 448 0 0 0 512 64z m0 832a384 384 0 0 1 0-768 389.12 389.12 0 0 1 384 384 389.12 389.12 0 0 1-384 384z</Geometry>
<Geometry x:Key="Icon.Help">M549.76 627.2h-80.96v-21.44a141.76 141.76 0 0 1 13.12-64 198.08 198.08 0 0 1 52.16-57.28 389.76 389.76 0 0 0 46.72-41.6 55.68 55.68 0 0 0 11.84-34.24 57.92 57.92 0 0 0-20.8-44.8 81.28 81.28 0 0 0-56-18.56 85.12 85.12 0 0 0-56.96 19.52 103.36 103.36 0 0 0-32 59.2l-82.24-10.24a136.32 136.32 0 0 1 48.64-96A171.84 171.84 0 0 1 512 276.48a178.24 178.24 0 0 1 122.56 40.32 121.92 121.92 0 0 1 45.44 93.76 103.04 103.04 0 0 1-16.64 56 366.4 366.4 0 0 1-71.36 72A136.32 136.32 0 0 0 556.16 576a128 128 0 0 0-6.4 51.2z m-81.28 120.32v-89.28h89.28v89.28zM512 64a448 448 0 1 0 448 448A448 448 0 0 0 512 64z m0 832a384 384 0 0 1 0-768 389.12 389.12 0 0 1 384 384 389.12 389.12 0 0 1-384 384z</Geometry>
<Geometry x:Key="Icon.Folder">M64 864h896V288h-396.224a64 64 0 0 1-57.242667-35.376L460.224 160H64v704z m-64 32V128a32 32 0 0 1 32-32h448a32 32 0 0 1 28.624 17.690667L563.776 224H992a32 32 0 0 1 32 32v640a32 32 0 0 1-32 32H32a32 32 0 0 1-32-32z</Geometry>
<Geometry x:Key="Icon.Folder.Fill">M448 64l128 128h448v768H0V64z</Geometry>
<Geometry x:Key="Icon.Folder.Open">M832 960l192-512H192L0 960zM128 384L0 960V128h288l128 128h416v128z</Geometry>
@ -48,7 +49,7 @@
<Geometry x:Key="Icon.Pull">M432 0h160c26.6 0 48 21.4 48 48v336h175.4c35.6 0 53.4 43 28.2 68.2L539.4 756.6c-15 15-39.6 15-54.6 0L180.2 452.2c-25.2-25.2-7.4-68.2 28.2-68.2H384V48c0-26.6 21.4-48 48-48z m592 752v224c0 26.6-21.4 48-48 48H48c-26.6 0-48-21.4-48-48V752c0-26.6 21.4-48 48-48h293.4l98 98c40.2 40.2 105 40.2 145.2 0l98-98H976c26.6 0 48 21.4 48 48z m-248 176c0-22-18-40-40-40s-40 18-40 40 18 40 40 40 40-18 40-40z m128 0c0-22-18-40-40-40s-40 18-40 40 18 40 40 40 40-18 40-40z</Geometry>
<Geometry x:Key="Icon.Push">M592 768h-160c-26.6 0-48-21.4-48-48V384h-175.4c-35.6 0-53.4-43-28.2-68.2L484.6 11.4c15-15 39.6-15 54.6 0l304.4 304.4c25.2 25.2 7.4 68.2-28.2 68.2H640v336c0 26.6-21.4 48-48 48z m432-16v224c0 26.6-21.4 48-48 48H48c-26.6 0-48-21.4-48-48V752c0-26.6 21.4-48 48-48h272v16c0 61.8 50.2 112 112 112h160c61.8 0 112-50.2 112-112v-16h272c26.6 0 48 21.4 48 48z m-248 176c0-22-18-40-40-40s-40 18-40 40 18 40 40 40 40-18 40-40z m128 0c0-22-18-40-40-40s-40 18-40 40 18 40 40 40 40-18 40-40z</Geometry>
<Geometry x:Key="Icon.SaveStash">M961.3 319.6L512 577.3 62.7 319.6 512 62l449.3 257.6zM512 628.4L185.4 441.6 62.7 512 512 769.6 961.3 512l-122.7-70.4L512 628.4zM512 820.8L185.4 634 62.7 704.3 512 962l449.3-257.7L838.6 634 512 820.8z</Geometry>
<Geometry x:Key="Icon.Apply">M295.328 472l143.184 276.032S671.184 186.992 1038.096 0c-8.944 133.568-44.8 249.328 17.904 391.792C894.912 427.408 563.792 828.112 456.4 1024 304.272 837.008 125.296 694.544 0 650.016z</Geometry>
<Geometry x:Key="Icon.Apply">M1024 682.6496V1024H0v-341.3504h1024zM1024 256v341.3504H0V256h1024zM362.8032 0C430.8992 0 455.168 16.896 455.168 64.0512v106.5984H85.3504V64.0512C85.3504 16.9472 109.6704 0 177.7664 0h185.0368zM849.92 0c68.096 0 88.7808 15.872 88.7808 62.976v107.6736h-369.7664V63.0272c0-47.104 24.832-63.0272 92.928-63.0272h188.0576z</Geometry>
<Geometry x:Key="Icon.Terminal">M144 112h736c17.673 0 32 14.327 32 32v736c0 17.673-14.327 32-32 32H144c-17.673 0-32-14.327-32-32V144c0-17.673 14.327-32 32-32z m112 211.24v72.43a8.81 8.81 0 0 0 3.35 7L386.09 509 259.35 615.37a9.32 9.32 0 0 0-3.35 7v72.43a9.2 9.2 0 0 0 15.15 7L492.7 516.04a9.29 9.29 0 0 0 0-14.2l-221.55-185.6a9.2 9.2 0 0 0-15.15 7zM521.57 624a9.82 9.82 0 0 0-9.57 10v60a9.82 9.82 0 0 0 9.57 10h236.86a9.82 9.82 0 0 0 9.57-10v-60a9.82 9.82 0 0 0-9.57-10H521.57z</Geometry>
<Geometry x:Key="Icon.Flow">M508.928 556.125091l92.904727 148.759273h124.462546l-79.639273-79.173819 49.245091-49.524363 164.584727 163.700363-164.631273 163.002182-49.152-49.617454 79.36-78.568728h-162.955636l-95.650909-153.227636 41.472-65.349818z m186.973091-394.705455l164.584727 163.700364-164.631273 163.002182-49.152-49.617455L726.109091 359.936H529.687273l-135.540364 223.976727H139.636364v-69.818182h215.133091l135.586909-223.976727h235.938909l-79.639273-79.173818 49.245091-49.524364z</Geometry>

View file

@ -14,6 +14,7 @@
<sys:String x:Key="Text.Bytes">{0} Bytes</sys:String>
<sys:String x:Key="Text.Filter">FILTER</sys:String>
<sys:String x:Key="Text.Optional">Optional.</sys:String>
<sys:String x:Key="Text.FakeFolderFilter">‡Directory|*.this.directory</sys:String>
<sys:String x:Key="Text.URL">URL :</sys:String>
<sys:String x:Key="Text.RepositoryURL">Git Repository URL</sys:String>
@ -39,8 +40,7 @@
<sys:String x:Key="Text.Apply.ErrorAll.Desc">Similar to 'error', but shows more</sys:String>
<sys:String x:Key="Text.Blame">Blame</sys:String>
<sys:String x:Key="Text.Blame.Title">SOURCEGIT - BLAME</sys:String>
<sys:String x:Key="Text.Blame.Tip">Use right mouse button to view commit information.</sys:String>
<sys:String x:Key="Text.Blame.Tip">Right click to see commit info</sys:String>
<sys:String x:Key="Text.Blame.SHA">COMMIT SHA</sys:String>
<sys:String x:Key="Text.Blame.Author">AUTHOR</sys:String>
<sys:String x:Key="Text.Blame.ModifyTime">MODIFY TIME</sys:String>
@ -60,8 +60,8 @@
<sys:String x:Key="Text.Clone">Clone Remote Repository</sys:String>
<sys:String x:Key="Text.Clone.RemoteURL">Repository URL :</sys:String>
<sys:String x:Key="Text.Clone.RemoteURL.Placeholder">Git Repository URL</sys:String>
<sys:String x:Key="Text.Clone.RemoteFolder">Parent Folder :</sys:String>
<sys:String x:Key="Text.Clone.RemoteFolder.Placeholder">Folder to contain this repository</sys:String>
<sys:String x:Key="Text.Clone.Folder">Parent Folder :</sys:String>
<sys:String x:Key="Text.Clone.Folder.Placeholder">Folder to contain this repository</sys:String>
<sys:String x:Key="Text.Clone.LocalName">Local Name :</sys:String>
<sys:String x:Key="Text.Clone.LocalName.Placeholder">Repository name. Optional.</sys:String>
<sys:String x:Key="Text.Clone.RemoteName">Remote Name :</sys:String>
@ -79,11 +79,9 @@
<sys:String x:Key="Text.CommitViewer.Info.Changed">CHANGED</sys:String>
<sys:String x:Key="Text.CommitViewer.Changes">CHANGES</sys:String>
<sys:String x:Key="Text.CommitViewer.Changes.Search">Search Files ...</sys:String>
<sys:String x:Key="Text.CommitViewer.Changes.SwitchMode">SWITCH TO LIST/TREE VIEW</sys:String>
<sys:String x:Key="Text.CommitViewer.Files">FILES</sys:String>
<sys:String x:Key="Text.Configure">Configure</sys:String>
<sys:String x:Key="Text.Configure.Credential">CREDENTIAL</sys:String>
<sys:String x:Key="Text.Configure.User">User :</sys:String>
<sys:String x:Key="Text.Configure.User.Placeholder">User name for this repository</sys:String>
<sys:String x:Key="Text.Configure.Email">Email :</sys:String>
@ -226,7 +224,7 @@
<sys:String x:Key="Text.Diff.NoChange">NO CHANGES OR ONLY EOL CHANGES</sys:String>
<sys:String x:Key="Text.Diff.Binary">BINARY DIFF</sys:String>
<sys:String x:Key="Text.Diff.Binary.Old">OLD :</sys:String>
<sys:String x:Key="Text.Diff.Binary.New">New :</sys:String>
<sys:String x:Key="Text.Diff.Binary.New">NEW :</sys:String>
<sys:String x:Key="Text.Diff.LFS">LFS OBJECT CHANGE</sys:String>
<sys:String x:Key="Text.Diff.Copy">Copy</sys:String>
@ -244,10 +242,10 @@
<sys:String x:Key="Text.FileHistory">File History</sys:String>
<sys:String x:Key="Text.FileDisplayMode">CHANGE FILES DISPLAY MODE</sys:String>
<sys:String x:Key="Text.FileDisplayMode.Grid">Show as Grid</sys:String>
<sys:String x:Key="Text.FileDisplayMode.List">Show as List</sys:String>
<sys:String x:Key="Text.FileDisplayMode.Tree">Show as Tree</sys:String>
<sys:String x:Key="Text.ChangeDisplayMode">CHANGE DISPLAY MODE</sys:String>
<sys:String x:Key="Text.ChangeDisplayMode.Grid">Show as Grid</sys:String>
<sys:String x:Key="Text.ChangeDisplayMode.List">Show as List</sys:String>
<sys:String x:Key="Text.ChangeDisplayMode.Tree">Show as Tree</sys:String>
<sys:String x:Key="Text.FolderDialog">SELECT FOLDER</sys:String>
<sys:String x:Key="Text.FolderDialog.Selected">SELECTED :</sys:String>
@ -275,28 +273,29 @@
<sys:String x:Key="Text.InteractiveRebase.MoveDown">MOVE DOWN</sys:String>
<sys:String x:Key="Text.Launcher">Source Git</sys:String>
<sys:String x:Key="Text.Launcher.NewPageButton">NEW PAGE</sys:String>
<sys:String x:Key="Text.Launcher.Preference">PREFERENCE</sys:String>
<sys:String x:Key="Text.Launcher.About">ABOUT</sys:String>
<sys:String x:Key="Text.Launcher.Error">ERROR</sys:String>
<sys:String x:Key="Text.Launcher.NewPage">New Page</sys:String>
<sys:String x:Key="Text.Launcher.NewPageTip">Welcome Page</sys:String>
<sys:String x:Key="Text.PageSwitcher.New">NEW PAGE</sys:String>
<sys:String x:Key="Text.PageSwitcher.Welcome.Title">New Page</sys:String>
<sys:String x:Key="Text.PageSwitcher.Welcome.Tip">Welcome Page</sys:String>
<sys:String x:Key="Text.Merge">Merge Branch</sys:String>
<sys:String x:Key="Text.Merge.Source">Source Branch :</sys:String>
<sys:String x:Key="Text.Merge.Into">Into :</sys:String>
<sys:String x:Key="Text.Merge.Mode">Merge Option :</sys:String>
<sys:String x:Key="Text.NewPage.Title">Welcome to SourceGit :)</sys:String>
<sys:String x:Key="Text.NewPage.OpenOrInit">Open Local Repository</sys:String>
<sys:String x:Key="Text.NewPage.Clone">Clone Remote Repository</sys:String>
<sys:String x:Key="Text.NewPage.Repositories">REPOSITORIES</sys:String>
<sys:String x:Key="Text.NewPage.DragDrop">DRAG-DROP YOUR FOLDER</sys:String>
<sys:String x:Key="Text.NewPage.OpenOrInitDialog">Open or init local repository</sys:String>
<sys:String x:Key="Text.NewPage.NewFolder">Add Folder</sys:String>
<sys:String x:Key="Text.NewPage.NewSubFolder">Add Sub-Folder</sys:String>
<sys:String x:Key="Text.NewPage.Rename">Rename</sys:String>
<sys:String x:Key="Text.NewPage.Delete">Delete</sys:String>
<sys:String x:Key="Text.Welcome.Title">Welcome to SourceGit :)</sys:String>
<sys:String x:Key="Text.Welcome.OpenOrInit">Open Local Repository</sys:String>
<sys:String x:Key="Text.Welcome.Clone">Clone Remote Repository</sys:String>
<sys:String x:Key="Text.Welcome.Repositories">REPOSITORIES</sys:String>
<sys:String x:Key="Text.Welcome.DragDrop">DRAG-DROP YOUR FOLDER</sys:String>
<sys:String x:Key="Text.Welcome.OpenOrInitDialog">Open or init local repository</sys:String>
<sys:String x:Key="Text.Welcome.NewFolder">Add Folder</sys:String>
<sys:String x:Key="Text.Welcome.NewSubFolder">Add Sub-Folder</sys:String>
<sys:String x:Key="Text.Welcome.Rename">Rename</sys:String>
<sys:String x:Key="Text.Welcome.Delete">Delete</sys:String>
<sys:String x:Key="Text.Pull">Pull</sys:String>
<sys:String x:Key="Text.Pull.Title">Pull (Fetch &amp; Merge)</sys:String>
@ -310,7 +309,7 @@
<sys:String x:Key="Text.Push.Title">Push Changes To Remote</sys:String>
<sys:String x:Key="Text.Push.Local">Local Branch :</sys:String>
<sys:String x:Key="Text.Push.Remote">Remote :</sys:String>
<sys:String x:Key="Text.Push.To">To :</sys:String>
<sys:String x:Key="Text.Push.To">Remote Branch :</sys:String>
<sys:String x:Key="Text.Push.WithAllTags">Push all tags</sys:String>
<sys:String x:Key="Text.Push.Force">Force push</sys:String>
@ -349,18 +348,19 @@
<sys:String x:Key="Text.Preference.RestartRequired">RESTART REQUIRED</sys:String>
<sys:String x:Key="Text.Preference.Locale">Language :</sys:String>
<sys:String x:Key="Text.Preference.AvatarServer">Avatar Server :</sys:String>
<sys:String x:Key="Text.Preference.UseLight">Use light theme</sys:String>
<sys:String x:Key="Text.Preference.UseDark">Use dark theme</sys:String>
<sys:String x:Key="Text.Preference.CheckUpdate">Check for update</sys:String>
<sys:String x:Key="Text.Preference.AutoFetch">Fetch remotes automatically</sys:String>
<sys:String x:Key="Text.Preference.Git">GIT INSTANCE</sys:String>
<sys:String x:Key="Text.Preference.Git">GIT SETTING</sys:String>
<sys:String x:Key="Text.Preference.Git.Path">Install Path :</sys:String>
<sys:String x:Key="Text.Preference.Git.Path.Placeholder">Input path for git.exe</sys:String>
<sys:String x:Key="Text.Preference.Git.Dir">Default Clone Dir :</sys:String>
<sys:String x:Key="Text.Preference.Git.Dir.Placeholder">Default path to clone repo into</sys:String>
<sys:String x:Key="Text.Preference.Global">GLOBAL SETTING</sys:String>
<sys:String x:Key="Text.Preference.User">Name :</sys:String>
<sys:String x:Key="Text.Preference.Email">Email :</sys:String>
<sys:String x:Key="Text.Preference.CRLF">Auto CRLF</sys:String>
<sys:String x:Key="Text.Preference.Git.User">User Name :</sys:String>
<sys:String x:Key="Text.Preference.Git.User.Placeholder">Global git user name</sys:String>
<sys:String x:Key="Text.Preference.Git.Email">User Email :</sys:String>
<sys:String x:Key="Text.Preference.Git.Email.Placeholder">Global git user email</sys:String>
<sys:String x:Key="Text.Preference.Git.CRLF">Enable Auto CRLF :</sys:String>
<sys:String x:Key="Text.Preference.Merger">MERGE TOOL</sys:String>
<sys:String x:Key="Text.Preference.Merger.Type">Merger :</sys:String>
<sys:String x:Key="Text.Preference.Merger.Path">Install Path :</sys:String>
@ -417,12 +417,14 @@
<sys:String x:Key="Text.NotConfigured">Git has NOT been configured.\nPlease to go [Preference] and configure it first.</sys:String>
<sys:String x:Key="Text.PathNotFound">Path[{0}] not exists!</sys:String>
<sys:String x:Key="Text.MissingBash">Can NOT locate bash.exe. Make sure bash.exe exists under the same folder with git.exe</sys:String>
<sys:String x:Key="Text.BinaryNotSupported">BINARY FILE BLAME NOT SUPPORTED!!!</sys:String>
<sys:String x:Key="Text.BinaryNotSupported">BINARY FILE NOT SUPPORTED!!!</sys:String>
<sys:String x:Key="Text.BlameTypeNotSupported">BLAME ON THIS FILE IS NOT SUPPORTED!!!</sys:String>
<sys:String x:Key="Text.GitDirNotFound">GIT_DIR for this repository NOT FOUND!</sys:String>
<sys:String x:Key="Text.InitGitFlowFailed">Initialize Git-flow failed!</sys:String>
<sys:String x:Key="Text.BadGitFlowType">Bad git-flow branch type!</sys:String>
<sys:String x:Key="Text.BadCloneFolder">EXISTS and FULL ACCESS CONTROL needed</sys:String>
<sys:String x:Key="Text.BadRemoteUri">Remote git URL not supported</sys:String>
<sys:String x:Key="Text.BadLocalName">Bad local repository name</sys:String>
<sys:String x:Key="Text.EmptyRemoteName">Remote name can NOT be null</sys:String>
<sys:String x:Key="Text.BadRemoteName">Bad name for remote. Regex: ^[\\w\\-\\.]+$</sys:String>
<sys:String x:Key="Text.DuplicatedRemoteName">Duplicated remote name!</sys:String>

View file

@ -14,6 +14,7 @@
<sys:String x:Key="Text.Bytes">{0} 字节</sys:String>
<sys:String x:Key="Text.Filter">过滤</sys:String>
<sys:String x:Key="Text.Optional">选填</sys:String>
<sys:String x:Key="Text.FakeFolderFilter">‡路径|*.this.directory</sys:String>
<sys:String x:Key="Text.URL">仓库地址 </sys:String>
<sys:String x:Key="Text.RepositoryURL">远程仓库地址</sys:String>
@ -23,7 +24,7 @@
<sys:String x:Key="Text.About">关于软件</sys:String>
<sys:String x:Key="Text.About.Title">SourceGit - 开源Git图形客户端</sys:String>
<sys:String x:Key="Text.Apply">应用补丁</sys:String>
<sys:String x:Key="Text.Apply">补丁</sys:String>
<sys:String x:Key="Text.Apply.Title">应用补丁</sys:String>
<sys:String x:Key="Text.Apply.File">补丁文件 </sys:String>
<sys:String x:Key="Text.Apply.File.Placeholder">选择补丁文件</sys:String>
@ -39,7 +40,6 @@
<sys:String x:Key="Text.Apply.ErrorAll.Desc">与【错误】级别相似,但输出内容更多</sys:String>
<sys:String x:Key="Text.Blame">逐行追溯</sys:String>
<sys:String x:Key="Text.Blame.Title">追溯</sys:String>
<sys:String x:Key="Text.Blame.Tip">右键点击查看所选行修改记录</sys:String>
<sys:String x:Key="Text.Blame.SHA">提交指纹</sys:String>
<sys:String x:Key="Text.Blame.Author">修改者</sys:String>
@ -60,8 +60,8 @@
<sys:String x:Key="Text.Clone">克隆远程仓库</sys:String>
<sys:String x:Key="Text.Clone.RemoteURL">远程仓库 </sys:String>
<sys:String x:Key="Text.Clone.RemoteURL.Placeholder">远程仓库地址</sys:String>
<sys:String x:Key="Text.Clone.RemoteFolder">父级目录 </sys:String>
<sys:String x:Key="Text.Clone.RemoteFolder.Placeholder">选择存放本仓库的父级文件夹路径</sys:String>
<sys:String x:Key="Text.Clone.Folder">父级目录 </sys:String>
<sys:String x:Key="Text.Clone.Folder.Placeholder">选择存放本仓库的父级文件夹路径</sys:String>
<sys:String x:Key="Text.Clone.LocalName">本地仓库名 </sys:String>
<sys:String x:Key="Text.Clone.LocalName.Placeholder">本地仓库目录的名字,选填</sys:String>
<sys:String x:Key="Text.Clone.RemoteName">远程名 </sys:String>
@ -79,11 +79,9 @@
<sys:String x:Key="Text.CommitViewer.Info.Changed">变更列表</sys:String>
<sys:String x:Key="Text.CommitViewer.Changes">变更对比</sys:String>
<sys:String x:Key="Text.CommitViewer.Changes.Search">查找文件...</sys:String>
<sys:String x:Key="Text.CommitViewer.Changes.SwitchMode">切换树形/列表模式</sys:String>
<sys:String x:Key="Text.CommitViewer.Files">文件列表</sys:String>
<sys:String x:Key="Text.Configure">配置</sys:String>
<sys:String x:Key="Text.Configure.Credential">仓库凭证</sys:String>
<sys:String x:Key="Text.Configure">仓库配置</sys:String>
<sys:String x:Key="Text.Configure.User">用户 </sys:String>
<sys:String x:Key="Text.Configure.User.Placeholder">应用于本仓库的用户名</sys:String>
<sys:String x:Key="Text.Configure.Email">邮箱 </sys:String>
@ -244,10 +242,10 @@
<sys:String x:Key="Text.FileHistory">文件历史</sys:String>
<sys:String x:Key="Text.FileDisplayMode">切换显示模式</sys:String>
<sys:String x:Key="Text.FileDisplayMode.Grid">网格模式</sys:String>
<sys:String x:Key="Text.FileDisplayMode.List">列表模式</sys:String>
<sys:String x:Key="Text.FileDisplayMode.Tree">树形模式</sys:String>
<sys:String x:Key="Text.ChangeDisplayMode">切换变更显示模式</sys:String>
<sys:String x:Key="Text.ChangeDisplayMode.Grid">网格模式</sys:String>
<sys:String x:Key="Text.ChangeDisplayMode.List">列表模式</sys:String>
<sys:String x:Key="Text.ChangeDisplayMode.Tree">树形模式</sys:String>
<sys:String x:Key="Text.FolderDialog">选择目录...</sys:String>
<sys:String x:Key="Text.FolderDialog.Selected">当前选择 </sys:String>
@ -275,28 +273,29 @@
<sys:String x:Key="Text.InteractiveRebase.MoveDown">向下移动</sys:String>
<sys:String x:Key="Text.Launcher">Source Git</sys:String>
<sys:String x:Key="Text.Launcher.NewPageButton">新建空白页</sys:String>
<sys:String x:Key="Text.Launcher.Preference">偏好设置</sys:String>
<sys:String x:Key="Text.Launcher.About">关于</sys:String>
<sys:String x:Key="Text.Launcher.Error">出错了</sys:String>
<sys:String x:Key="Text.Launcher.NewPage">新标签页</sys:String>
<sys:String x:Key="Text.Launcher.NewPageTip">起始页</sys:String>
<sys:String x:Key="Text.Merge">合并分支</sys:String>
<sys:String x:Key="Text.PageSwitcher.New">新建空白页</sys:String>
<sys:String x:Key="Text.PageSwitcher.Welcome.Title">新标签页</sys:String>
<sys:String x:Key="Text.PageSwitcher.Welcome.Tip">起始页</sys:String>
<sys:String x:Key="Text.Merge">合并分支</sys:String>
<sys:String x:Key="Text.Merge.Source">合并分支 </sys:String>
<sys:String x:Key="Text.Merge.Into">目标分支 </sys:String>
<sys:String x:Key="Text.Merge.Mode">合并方式 </sys:String>
<sys:String x:Key="Text.NewPage.Title">欢迎使用本软件</sys:String>
<sys:String x:Key="Text.NewPage.OpenOrInit">打开本地仓库</sys:String>
<sys:String x:Key="Text.NewPage.Clone">克隆远程仓库</sys:String>
<sys:String x:Key="Text.NewPage.Repositories">仓库列表</sys:String>
<sys:String x:Key="Text.NewPage.DragDrop">支持拖放操作</sys:String>
<sys:String x:Key="Text.NewPage.OpenOrInitDialog">打开/初始化本地仓库</sys:String>
<sys:String x:Key="Text.NewPage.NewFolder">新建分组</sys:String>
<sys:String x:Key="Text.NewPage.NewSubFolder">新建子分组</sys:String>
<sys:String x:Key="Text.NewPage.Rename">重命名</sys:String>
<sys:String x:Key="Text.NewPage.Delete">删除</sys:String>
<sys:String x:Key="Text.Welcome.Title">欢迎使用本软件</sys:String>
<sys:String x:Key="Text.Welcome.OpenOrInit">打开本地仓库</sys:String>
<sys:String x:Key="Text.Welcome.Clone">克隆远程仓库</sys:String>
<sys:String x:Key="Text.Welcome.Repositories">仓库列表</sys:String>
<sys:String x:Key="Text.Welcome.DragDrop">支持拖放操作</sys:String>
<sys:String x:Key="Text.Welcome.OpenOrInitDialog">打开/初始化本地仓库</sys:String>
<sys:String x:Key="Text.Welcome.NewFolder">新建分组</sys:String>
<sys:String x:Key="Text.Welcome.NewSubFolder">新建子分组</sys:String>
<sys:String x:Key="Text.Welcome.Rename">重命名</sys:String>
<sys:String x:Key="Text.Welcome.Delete">删除</sys:String>
<sys:String x:Key="Text.Pull">拉回</sys:String>
<sys:String x:Key="Text.Pull.Title">拉回(拉取并合并)</sys:String>
@ -349,7 +348,7 @@
<sys:String x:Key="Text.Preference.RestartRequired">需要重启软件</sys:String>
<sys:String x:Key="Text.Preference.Locale">显示语言 </sys:String>
<sys:String x:Key="Text.Preference.AvatarServer">头像服务 </sys:String>
<sys:String x:Key="Text.Preference.UseLight">启用浅色主题</sys:String>
<sys:String x:Key="Text.Preference.UseDark">启用—暗色主题</sys:String>
<sys:String x:Key="Text.Preference.CheckUpdate">启用检测更新</sys:String>
<sys:String x:Key="Text.Preference.AutoFetch">启用定时自动拉取远程更新</sys:String>
<sys:String x:Key="Text.Preference.Git">GIT配置</sys:String>
@ -357,10 +356,11 @@
<sys:String x:Key="Text.Preference.Git.Path.Placeholder">填写git.exe所在位置</sys:String>
<sys:String x:Key="Text.Preference.Git.Dir">默认克隆路径 </sys:String>
<sys:String x:Key="Text.Preference.Git.Dir.Placeholder">默认的仓库本地存放位置</sys:String>
<sys:String x:Key="Text.Preference.Global">全局设置</sys:String>
<sys:String x:Key="Text.Preference.User">用户名 </sys:String>
<sys:String x:Key="Text.Preference.Email">邮箱 </sys:String>
<sys:String x:Key="Text.Preference.CRLF">自动换行转换 </sys:String>
<sys:String x:Key="Text.Preference.Git.User">用户名 </sys:String>
<sys:String x:Key="Text.Preference.Git.User.Placeholder">默认GIT用户名</sys:String>
<sys:String x:Key="Text.Preference.Git.Email">邮箱 </sys:String>
<sys:String x:Key="Text.Preference.Git.Email.Placeholder">默认GIT用户邮箱</sys:String>
<sys:String x:Key="Text.Preference.Git.CRLF">自动换行转换 </sys:String>
<sys:String x:Key="Text.Preference.Merger">外部合并工具</sys:String>
<sys:String x:Key="Text.Preference.Merger.Type">工具 </sys:String>
<sys:String x:Key="Text.Preference.Merger.Path">安装路径 </sys:String>
@ -418,11 +418,13 @@
<sys:String x:Key="Text.PathNotFound">路径({0})不存在或不可读取!</sys:String>
<sys:String x:Key="Text.MissingBash">无法找到bash.exe请确保其在git.exe同目录中</sys:String>
<sys:String x:Key="Text.BinaryNotSupported">二进制文件不支持该操作!!!</sys:String>
<sys:String x:Key="Text.BlameTypeNotSupported">选中文件不支持该操作!!!</sys:String>
<sys:String x:Key="Text.GitDirNotFound">获取仓库GIT_DIR失败!</sys:String>
<sys:String x:Key="Text.InitGitFlowFailed">初始化GIT FLOW失败!</sys:String>
<sys:String x:Key="Text.BadGitFlowType">不支持的GIT FLOW分支!</sys:String>
<sys:String x:Key="Text.BadCloneFolder">目录不存在或不可写!!!</sys:String>
<sys:String x:Key="Text.BadRemoteUri">非法的远程仓库地址!</sys:String>
<sys:String x:Key="Text.BadLocalName">非法的本地仓库地址!</sys:String>
<sys:String x:Key="Text.EmptyRemoteName">远程仓库地址不可为空</sys:String>
<sys:String x:Key="Text.BadRemoteName">远程仓库地址包含非法字符!仅支持字母、数字、下划线、横线或英文点号!</sys:String>
<sys:String x:Key="Text.DuplicatedRemoteName">远程仓库名已存在!</sys:String>

View file

@ -1,12 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="Style.Border.Badge" TargetType="{x:Type Border}">
<Setter Property="CornerRadius" Value="9"/>
<Setter Property="Margin" Value="4,0"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Height" Value="18"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Background" Value="{DynamicResource Brush.Badge}"/>
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</ResourceDictionary>

View file

@ -1,10 +1,10 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- 无边框按钮(也是默认样式) -->
<Style x:Key="Style.Button" TargetType="{x:Type Button}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="TextElement.Foreground" Value="{DynamicResource Brush.FG1}"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="BorderBrush" Value="{DynamicResource Brush.Border1}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Opacity" Value=".8"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
@ -28,28 +28,7 @@
</Style.Triggers>
</Style>
<!-- 修改默认样式 -->
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource Style.Button}"/>
<!-- 无边框但显示Hover -->
<Style x:Key="Style.Button.HighlightHover" BasedOn="{StaticResource Style.Button}" TargetType="{x:Type Button}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#40000000"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- 有边框 -->
<Style x:Key="Style.Button.Bordered" BasedOn="{StaticResource Style.Button}" TargetType="{x:Type Button}">
<Setter Property="BorderBrush" Value="{DynamicResource Brush.Border1}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="8,0"/>
</Style>
<Style x:Key="Style.Button.AccentBordered" BasedOn="{StaticResource Style.Button}" TargetType="{x:Type Button}">
<Setter Property="Background" Value="{DynamicResource Brush.Accent1}"/>
<Setter Property="BorderBrush" Value="{DynamicResource Brush.FG1}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="8,0"/>
</Style>
</ResourceDictionary>

View file

@ -3,33 +3,30 @@
<Style x:Key="Style.DataGridCell" TargetType="{x:Type DataGridCell}">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" />
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}" />
<Setter Property="BorderBrush" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" />
</Trigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="True" />
<Condition Binding="{Binding IsKeyboardFocusWithin, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}, Mode=FindAncestor}}" Value="False" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" />
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}" />
<Setter Property="BorderBrush" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" />
</MultiDataTrigger>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="{DynamicResource Brush.Accent1}"/>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="Style.DataGridRow" TargetType="{x:Type DataGridRow}">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{DynamicResource Brush.Accent2}"/>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="{DynamicResource Brush.Accent1}"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="False"/>
<Condition Property="IsMouseOver" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="Background" Value="{DynamicResource Brush.Accent2}"/>
</MultiTrigger>
</Style.Triggers>
</Style>

View file

@ -0,0 +1,43 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:SourceGit.Views.Controls">
<Style TargetType="{x:Type controls:IconButton}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="{DynamicResource Brush.FG1}"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Opacity" Value=".8"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type controls:IconButton}">
<Border
x:Name="Border"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
Padding="{TemplateBinding Padding}">
<Path
Fill="{TemplateBinding Foreground}"
Data="{TemplateBinding Icon}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Border" Property="Background" Value="{Binding HoverBackground, RelativeSource={RelativeSource AncestorType={x:Type controls:IconButton}}}"/>
<Setter Property="Opacity" Value="1"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Opacity" Value="1"/>
</Trigger>
</Style.Triggers>
</Style>
</ResourceDictionary>

View file

@ -1,15 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="Style.Label" TargetType="{x:Type Label}">
<Setter Property="Foreground" Value="{DynamicResource Brush.FG1}"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
</Style>
<Style TargetType="{x:Type Label}" BasedOn="{StaticResource Style.Label}"/>
<Style x:Key="Style.Label.GroupHeader" BasedOn="{StaticResource Style.Label}" TargetType="{x:Type Label}">
<Setter Property="FontWeight" Value="DemiBold"/>
<Setter Property="Opacity" Value=".5"/>
</Style>
</ResourceDictionary>

View file

@ -0,0 +1,25 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="{x:Type ListBox}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="VirtualizingPanel.IsVirtualizing" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBox}">
<Border
Margin="{TemplateBinding Margin}"
Padding="{TemplateBinding Padding}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<ItemsPresenter/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>

View file

@ -1,8 +1,7 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="Style.ListViewItem.Borderless" TargetType="{x:Type ListViewItem}">
<Setter Property="Padding" Value="2"/>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="Padding" Value="0"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="SnapsToDevicePixels" Value="true"/>
<Setter Property="Template">
@ -29,15 +28,16 @@
</Setter>
</Style>
<Style x:Key="Style.ListView.Borderless" TargetType="{x:Type ListView}">
<Style TargetType="{x:Type ListView}">
<Setter Property="SnapsToDevicePixels" Value="true" />
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.CanContentScroll" Value="True" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="ItemContainerStyle" Value="{StaticResource Style.ListViewItem.Borderless}"/>
<Setter Property="VirtualizingPanel.IsVirtualizing" Value="True"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
@ -48,7 +48,10 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListView}">
<Border Name="Border" BorderThickness="0" Background="{TemplateBinding Background}">
<Border
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
Background="{TemplateBinding Background}">
<ScrollViewer HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}"
VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}"
CanContentScroll="{TemplateBinding ScrollViewer.CanContentScroll}">

View file

@ -1,15 +1,10 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="Style.Icon" TargetType="{x:Type Path}">
<Setter Property="Width" Value="16"/>
<Setter Property="Height" Value="16"/>
<Style TargetType="{x:Type Path}">
<Setter Property="Stretch" Value="Uniform"/>
<Setter Property="Fill" Value="{DynamicResource Brush.FG1}"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="RenderOptions.BitmapScalingMode" Value="HighQuality"/>
</Style>
<!-- 修改默认样式 -->
<Style TargetType="{x:Type Path}" BasedOn="{StaticResource Style.Icon}"/>
</ResourceDictionary>

View file

@ -1,4 +1,4 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="{x:Type TabControl}">
<Setter Property="OverridesDefaultStyle" Value="True" />
@ -19,7 +19,10 @@
KeyboardNavigation.TabNavigation="Local"
KeyboardNavigation.DirectionalNavigation="Contained"
KeyboardNavigation.TabIndex="2">
<ContentPresenter x:Name="PART_SelectedContentHost" Margin="4" ContentSource="SelectedContent" />
<ContentPresenter
x:Name="PART_SelectedContentHost"
Margin="4"
ContentSource="SelectedContent"/>
</Border>
</Grid>
</ControlTemplate>
@ -28,24 +31,35 @@
</Style>
<Style TargetType="{x:Type TabItem}">
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Border x:Name="Border" Margin="0" BorderThickness="0,0,0,1.1" BorderBrush="Transparent" Opacity=".7">
<ContentPresenter
x:Name="ContentSite"
VerticalAlignment="Center" HorizontalAlignment="Center"
TextElement.Foreground="{DynamicResource Brush.FG1}"
TextElement.FontWeight="Bold"
<Border
x:Name="Border"
BorderThickness="0,0,0,1"
BorderBrush="Transparent">
<ContentPresenter
VerticalAlignment="Center"
HorizontalAlignment="Center"
ContentSource="Header"
Margin="8,6"
RecognizesAccessKey="True" />
Margin="8,6">
<ContentPresenter.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Foreground" Value="{DynamicResource Brush.FG2}"/>
<Setter Property="FontWeight" Value="Bold"/>
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type TabItem}}, Path=IsSelected}" Value="True">
<Setter Property="Foreground" Value="{DynamicResource Brush.Accent1}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentPresenter.Resources>
</ContentPresenter>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="BorderBrush" Value="{DynamicResource Brush.Accent1}"/>
<Setter TargetName="Border" Property="Opacity" Value="1"/>
<Setter TargetName="ContentSite" Property="TextElement.Foreground" Value="{DynamicResource Brush.Accent1}"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>

View file

@ -0,0 +1,28 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="{x:Type TextBlock}">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="Foreground" Value="{DynamicResource Brush.FG1}"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
<Style x:Key="Style.TextBlock.LineNumber" TargetType="{x:Type TextBlock}">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="Foreground" Value="{DynamicResource Brush.FG1}"/>
<Setter Property="HorizontalAlignment" Value="Right"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Padding" Value="8,0"/>
</Style>
<Style x:Key="Style.TextBlock.LineContent" TargetType="{x:Type TextBlock}">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="Foreground" Value="{DynamicResource Brush.FG1}"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Padding" Value="4,0,0,0"/>
</Style>
</ResourceDictionary>

View file

@ -1,8 +1,6 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:helpers="clr-namespace:SourceGit.Helpers">
<!-- 错误Tooltip -->
xmlns:controls="clr-namespace:SourceGit.Views.Controls">
<ControlTemplate x:Key="Template.Validation.Tooltip" TargetType="{x:Type ToolTip}">
<Border x:Name="Root" Margin="5,0,0,0" Opacity="0" Padding="0,0,20,20" RenderTransformOrigin="0,0">
<Border.RenderTransform>
@ -48,7 +46,6 @@
</Border>
</ControlTemplate>
<!-- 验证错误模板 -->
<ControlTemplate x:Key="Template.Validation.Error">
<AdornedElementPlaceholder x:Name="Target">
<Border BorderBrush="#FFDB000C" BorderThickness="1" x:Name="root">
@ -76,17 +73,18 @@
</ControlTemplate.Triggers>
</ControlTemplate>
<!-- 修改默认 -->
<Style TargetType="{x:Type TextBox}">
<Style x:Key="Style.TextBox" TargetType="{x:Type TextBox}">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="TextElement.Foreground" Value="{DynamicResource Brush.FG1}"/>
<Setter Property="Foreground" Value="{DynamicResource Brush.FG1}"/>
<Setter Property="CaretBrush" Value="{DynamicResource Brush.FG1}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="{DynamicResource Brush.Border1}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Validation.ErrorTemplate" Value="{StaticResource Template.Validation.Error}"/>
<Setter Property="helpers:TextBoxHelper.AutoScroll" Value="True"/>
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
@ -99,19 +97,21 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<Border x:Name="Border"
Background="{TemplateBinding Background}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}">
<ScrollViewer x:Name="PART_ContentHost"
Margin="{TemplateBinding Padding}"
VerticalAlignment="Center"
Background="Transparent"
BorderThickness="0"
IsTabStop="False"
CanContentScroll="False"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<Border
x:Name="Border"
Background="{TemplateBinding Background}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}">
<ScrollViewer
x:Name="PART_ContentHost"
Margin="{TemplateBinding Padding}"
VerticalAlignment="Center"
Background="Transparent"
BorderThickness="0"
IsTabStop="False"
CanContentScroll="True"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
<ControlTemplate.Triggers>
@ -126,4 +126,7 @@
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource Style.TextBox}"/>
<Style TargetType="{x:Type controls:TextEdit}" BasedOn="{StaticResource Style.TextBox}"/>
</ResourceDictionary>

View file

@ -50,7 +50,7 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Grid>
<Grid Background="Transparent">
<Path
x:Name="Icon"
Height="12"
@ -70,7 +70,7 @@
<Condition Property="IsChecked" Value="False"/>
<Condition Property="IsMouseOver" Value="True"/>
</MultiTrigger.Conditions>
<Setter TargetName="Icon" Property="Fill" Value="{DynamicResource Brush.FG2}"/>
<Setter TargetName="Icon" Property="Opacity" Value=".5"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
@ -78,36 +78,6 @@
</Setter>
</Style>
<Style x:Key="Style.ToggleButton.ListOrTree" TargetType="{x:Type ToggleButton}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Grid Background="Transparent">
<Path
x:Name="Icon"
Height="12"
Width="12"
Style="{DynamicResource Style.Icon}"
Fill="Transparent"
Stroke="{DynamicResource Brush.FG1}"
StrokeThickness=".4"
Data="{DynamicResource Icon.Tree}"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="Icon" Property="Data" Value="{DynamicResource Icon.List}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="Style.ToggleButton.SplitDirection" TargetType="{x:Type ToggleButton}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="Transparent"/>

View file

@ -1,9 +1,6 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converters="clr-namespace:SourceGit.Converters"
xmlns:helpers="clr-namespace:SourceGit.Helpers">
<converters:TreeViewItemDepthToMargin x:Key="Converter.TreeViewItemIndent" Indent="19"/>
xmlns:controls="clr-namespace:SourceGit.Views.Controls">
<Style x:Key="Style.TreeView.ToggleButton" TargetType="{x:Type ToggleButton}">
<Setter Property="Focusable" Value="False"/>
@ -24,71 +21,7 @@
</Setter>
</Style>
<Style x:Key="Style.TreeView.ItemContainerStyle" TargetType="{x:Type TreeViewItem}">
<Setter Property="KeyboardNavigation.AcceptsReturn" Value="True" />
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="HorizontalContentAlignment" Value="{Binding HorizontalContentAlignment, Mode=OneWay, FallbackValue=Stretch, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding VerticalContentAlignment, Mode=OneWay, FallbackValue=Center, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" />
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Padding" Value="{Binding Padding, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TreeViewItem}">
<StackPanel>
<Border x:Name="BG"
Background="Transparent"
Padding="{TemplateBinding Padding}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}">
<Grid
Margin="{Binding Converter={StaticResource Converter.TreeViewItemIndent}, RelativeSource={x:Static RelativeSource.TemplatedParent}}"
VerticalAlignment="Stretch"
Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<ToggleButton
Grid.Column="0"
x:Name="Expander"
Style="{StaticResource Style.TreeView.ToggleButton}"
IsChecked="{Binding Path=IsExpanded, RelativeSource={x:Static RelativeSource.TemplatedParent}, Mode=TwoWay}"
ClickMode="Press"/>
<ContentPresenter
x:Name="PART_Header"
Grid.Column="1"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
ContentSource="Header"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Grid>
</Border>
<ItemsPresenter x:Name="ItemsHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</StackPanel>
<ControlTemplate.Triggers>
<Trigger Property="IsExpanded" Value="False">
<Setter TargetName="ItemsHost" Property="Visibility" Value="Collapsed"/>
</Trigger>
<Trigger Property="HasItems" Value="False">
<Setter TargetName="Expander" Property="Visibility" Value="Hidden"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="BG" Property="Background" Value="{DynamicResource Brush.Accent1}"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition SourceName="BG" Property="IsMouseOver" Value="True"/>
<Condition Property="IsSelected" Value="False"/>
</MultiTrigger.Conditions>
<Setter TargetName="BG" Property="Background" Value="{DynamicResource Brush.Accent2}"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="Style.TreeView.MultiSelectionItemContainerStyle" TargetType="{x:Type TreeViewItem}">
<Style x:Key="Style.TreeItem" TargetType="{x:Type controls:TreeItem}">
<Setter Property="KeyboardNavigation.AcceptsReturn" Value="True" />
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
@ -97,7 +30,7 @@
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TreeViewItem}">
<ControlTemplate TargetType="{x:Type controls:TreeItem}">
<StackPanel>
<Border
x:Name="BG"
@ -105,8 +38,7 @@
BorderThickness="0"
Padding="{TemplateBinding Padding}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}">
<Grid
Margin="{Binding Converter={StaticResource Converter.TreeViewItemIndent}, RelativeSource={x:Static RelativeSource.TemplatedParent}}"
<Grid
VerticalAlignment="Stretch"
Background="Transparent">
<Grid.ColumnDefinitions>
@ -137,13 +69,13 @@
<Trigger Property="HasItems" Value="False">
<Setter TargetName="Expander" Property="Visibility" Value="Hidden"/>
</Trigger>
<Trigger Property="helpers:TreeViewHelper.IsChecked" Value="True">
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="BG" Property="Background" Value="{DynamicResource Brush.Accent1}"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition SourceName="BG" Property="IsMouseOver" Value="True"/>
<Condition Property="helpers:TreeViewHelper.IsChecked" Value="False"/>
<Condition Property="IsChecked" Value="False"/>
</MultiTrigger.Conditions>
<Setter TargetName="BG" Property="Background" Value="{DynamicResource Brush.Accent2}"/>
</MultiTrigger>
@ -153,11 +85,12 @@
</Setter>
</Style>
<Style TargetType="{x:Type TreeView}">
<Style TargetType="{x:Type controls:TreeItem}" BasedOn="{StaticResource Style.TreeItem}"/>
<Style TargetType="{x:Type controls:Tree}">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="ItemContainerStyle" Value="{StaticResource Style.TreeView.ItemContainerStyle}"/>
<Setter Property="VirtualizingStackPanel.IsVirtualizing" Value="True" />
<Setter Property="VirtualizingStackPanel.VirtualizationMode" Value="Standard" />
<Setter Property="ScrollViewer.CanContentScroll" Value="True" />
@ -172,7 +105,7 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TreeView}">
<ControlTemplate TargetType="{x:Type controls:Tree}">
<Border Name="Border"
Background="{TemplateBinding Background}"
BorderThickness="0"