Ultraviolet Framework 1.3.15
·
1298 commits
to develop
since this release
Core
- Localization databases will attempt to fall back to another culture with the same language as the current culture, rather than defaulting to American English. The
en-US
culture will still be used as a fallback of last resort if no appropriate same-language cultures exist in the database.
Content
- Implemented watched content. You can now indicate that you'd like Ultraviolet to watch an asset file for changes by loading it using one of the new
LoadWatched<T>()
methods onContentManager
.- If Ultraviolet believes that it's running inside of a Visual Studio solution folder, it will attempt to watch the original solution files, rather than the copies that are placed in the
bin
folder at compilation time. - If reloading a file would cause an exception to be raised, the last known good version of the file is automatically restored.
- If Ultraviolet believes that it's running inside of a Visual Studio solution folder, it will attempt to watch the original solution files, rather than the copies that are placed in the
Graphics
- FIX: Cleaned up shaders for core effects and improved cross-platform compatibility.
- FIX: Added some missing constructors to the
SpriteFrame
structure. - FIX:
DrawScaledSprite()
was ignoring theeffects
andlayerDepth
parameters [from Scellow] - Added
GetAnimation()
method toSpriteAnimationController
[from Scellow]
Input
- Added
GamePadButton
values corresponding to each of the supported analog axes. Corresponding button events will be generated whenever any of these axes cross a certain threshold value (by default, 90% of their maximum value).
Presentation
- FIX: Tab navigation should now move correctly through controls using
KeyboardNavigationMode.Once
. - Reduced memory usage of dependency objects.
- Implemented commands, command bindings, and input bindings.
- Commands in UPF work basically the same way as they do in WPF; see this MSDN article for an overview.
- Updated
TextEditor
to use commands. - Updated
HScrollBar
andVScrollBar
to use commands. - Updated
ScrollViewer
to use commands.
- Added a
ScrollBar
control. This control can represent either a horizontal or vertical scroll bar by changing the value of itsOrientation
dependency property. - Added a
Slider
control. This control can represent either a horizontal or vertical slider by changing the value of itsOrientation
dependency property. - Added support for deferred scrolling to
ScrollViewer
- Added support for watched content. Modifying a view definition or style sheet will now cause the corresponding view to be automatically reloaded at runtime.
- You must opt into this feature by setting
WatchViewFilesForChanges
totrue
when configuring the Ultraviolet context. - You can make sure that the global style sheet is automatically reloaded by making use of the new
CompositeUvssDocument
class -- see the debug application for an example of how to do this. - Reloading views should be tolerant of errors, but the system wasn't originally designed to handle this scenario, so some things may have fallen through the cracks. If changing a file causes the application to crash from an unhandled exception, please report it as a bug.
- You must opt into this feature by setting
- Made some adjustments to layout rounding (again).
- Made some adjustments to navigation using game pads.