// Callback invoked when VectorHeight changes private static void onVectorHeightChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { SharpButton self = (SharpButton)d; AdvancedLength new_height = (AdvancedLength)e.NewValue; if (self.IsLoaded) { updateActualVectorSize(self, self.VectorWidth, new_height); } }
// Recompute the Vector's ActualWidth and ActualSize base on current size conditions private static void updateActualVectorSize(SharpButton self, AdvancedLength new_width, AdvancedLength new_height) { self.VectorStretch = Stretch.Fill; if (new_width.Unit == AdvancedLength.UnitType.Auto || new_height.Unit == AdvancedLength.UnitType.Auto) { self.VectorStretch = Stretch.Uniform; } self.ActualVectorHeight = self.computeActualVectorSize(new_height, self.ActualHeight); self.ActualVectorWidth = self.computeActualVectorSize(new_width, self.ActualWidth - self._PART_Content.ActualWidth); }