My Visiblox charts shrink to fit the available space, and sometimes the axis title gets shrunk so much it gets cut off. So I figured I would just create a new ControlTemplate for the LinearAxis, using Blend's starter code for the template.
I added a ViewBox around the AxisLabel textblock, but it wasn't working right. There's some interesting stuff you have to do with the Grid row and column, because the code needs to be generic enough to work on horizontal or vertical axes. After a lot of trial and error, along with some external support, I have a working template that shrinks my Axis Title to fit the available space. See answer below.
<ControlTemplate TargetType="{x:Type charts:LinearAxis}" x:Key="LinearAxisTemplate">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<Grid x:Name="LayoutRoot" Background="{TemplateBinding Background}">
<Grid x:Name="LabelsContainer"/>
<Canvas x:Name="BehaviourCanvas"/>
<Viewbox Stretch="Uniform" StretchDirection="DownOnly"
Grid.Row="{Binding (Grid.Row), ElementName=AxisLabelContainer}"
Grid.Column="{Binding (Grid.Column), ElementName=AxisLabelContainer}">
<Visiblox_Charts_Primitives:TransposePanel x:Name="AxisLabelContainer">
<TextBlock x:Name="AxisLabel" Style="{TemplateBinding TitleStyle}" Text="{TemplateBinding Title}" />
</Visiblox_Charts_Primitives:TransposePanel>
</Viewbox>
<Line x:Name="AxisLine" Style="{TemplateBinding AxisLineStyle}" Stretch="Fill"/>
</Grid>
</Border>
</ControlTemplate>
Just apply this template to any LinearAxis in any of your charts, and the titles will shrink to fit. You could easily adapt this for any type of axis.
(XAxis as LinearAxis).Template = MyChart.FindResource("LinearAxisTemplate") as System.Windows.Controls.ControlTemplate;