Наследование: CompoundButton
 private ProgressButton AddProgressButton(LinearLayout container)
 {
     var layoutParams = new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.WrapContent, 1.0f);
     var progressButton = new ProgressButton(this);
     progressButton.LayoutParameters = layoutParams;
     container.AddView(progressButton);
     return progressButton;
 }
 private void UpdatePinProgressContentDescription(ProgressButton button)
 {
     if (button.Progress <= 0)
     {
         button.ContentDescription =
             GetString(button.Pinned
                           ? Resource.String.content_desc_pinned_not_downloaded
                           : Resource.String.content_desc_unpinned_not_downloaded);
     }
     else if (button.Progress >= 100)
     {
         button.ContentDescription =
             GetString(button.Pinned
                           ? Resource.String.content_desc_pinned_downloaded
                           : Resource.String.content_desc_unpinned_downloaded);
     }
     else
     {
         button.ContentDescription =
             GetString(button.Pinned
                           ? Resource.String.content_desc_pinned_downloading
                           : Resource.String.content_desc_unpinned_downloading);
     }
 }
        private void UpdateProgressButton(ProgressButton progressButton, SeekBar progressSeekBar)
        {
            if (progressButton.Indeterminante)
                return;

            progressButton.Progress = progressSeekBar.Progress;
            UpdatePinProgressContentDescription(progressButton);
        }