diff --git a/src/Avalonia.Styling/Styling/Styles.cs b/src/Avalonia.Styling/Styling/Styles.cs index 789bb6ffd3..a4563110a9 100644 --- a/src/Avalonia.Styling/Styling/Styles.cs +++ b/src/Avalonia.Styling/Styling/Styles.cs @@ -180,7 +180,7 @@ namespace Avalonia.Styling /// public bool TryGetResource(object key, out object value) { - if (_resources != null && _resources.TryGetValue(key, out value)) + if (_resources != null && _resources.TryGetResource(key, out value)) { return true; } diff --git a/tests/Avalonia.Styling.UnitTests/StylesTests.cs b/tests/Avalonia.Styling.UnitTests/StylesTests.cs index c033dad0c6..82b6b81759 100644 --- a/tests/Avalonia.Styling.UnitTests/StylesTests.cs +++ b/tests/Avalonia.Styling.UnitTests/StylesTests.cs @@ -2,6 +2,7 @@ // Licensed under the MIT license. See licence.md file in the project root for full license information. using System; +using Avalonia.Controls; using Xunit; namespace Avalonia.Styling.UnitTests @@ -111,5 +112,28 @@ namespace Avalonia.Styling.UnitTests Assert.False(raised); } + + + [Fact] + public void Finds_Resource_In_Merged_Dictionary() + { + var target = new Styles + { + Resources = new ResourceDictionary + { + MergedDictionaries = + { + new ResourceDictionary + { + { "foo", "bar" }, + } + } + } + }; + + var result = target.FindResource("foo"); + + Assert.Equal("bar", result); + } } }